这篇文章将介绍如何使用spire.pdf组件打印pdf文档。本文适用于spire.pdf hotfix version 3.9.360之后的版本,如果你使用的是免费版或是该版本以前的旧版本,请参考这篇文章。
spire.pdf组件支持多种pdf文档打印方式,本文将逐一介绍以下8种方式:
- 使用默认打印机打印pdf文档
- 使用虚拟打印机(microsoft xps document writer)打印pdf文档
- 指定打印机及pdf文档打印页码范围
- 静默打印pdf文档
- 双面打印pdf文档
- 黑白打印pdf文档
- 打印pdf文档时选择不同的出纸盒
- 将pdf文档打印多份
除以上几种打印方式以外,spire.pdf还支持以及。
使用默认打印机
c#
//加载pdf文档
pdfdocument doc = new pdfdocument();
doc.loadfromfile("test.pdf");
//使用默认打印机打印文档所有页面
doc.print();
vb.net
'加载pdf文档
dim doc as new pdfdocument()
doc.loadfromfile("test.pdf")
'使用默认打印机打印文档所有页面
doc.print()
使用虚拟打印机
//加载pdf文档
pdfdocument doc = new pdfdocument();
doc.loadfromfile("test.pdf");
//选择microsoft xps document writer打印机
doc.printsettings.printername = "microsoft xps document writer";
//打印pdf文档到xps格式
doc.printsettings.printtofile("printtoxps.xps");
doc.print();
vb.net
'加载pdf文档
dim doc as new pdfdocument()
doc.loadfromfile("test.pdf")
'选择microsoft xps document writer打印机
doc.printsettings.printername = "microsoft xps document writer"
'打印pdf文档到xps格式
doc.printsettings.printtofile("printtoxps.xps")
doc.print()
指定打印机及文档打印页码范围
c#
//加载pdf文档
pdfdocument doc = new pdfdocument();
doc.loadfromfile("test.pdf");
//指定打印机
doc.printsettings.printername = "hp laserjet p1007";
//设置文档打印页码范围
doc.printsettings.selectpagerange(1, 5);
//打印不连续的页面
//doc.printsettings.selectsomepages(new int[] { 1, 3, 5, 7 });
//打印pdf文档
doc.print();
vb.net
'加载pdf文档
dim doc as new pdfdocument()
doc.loadfromfile("test.pdf")
'指定打印机
doc.printsettings.printername = "hp laserjet p1007"
'设置文档打印页码范围
doc.printsettings.selectpagerange(1, 5)
'打印不连续的页面
'doc.printsettings.selectsomepages(new int[] { 1, 3, 5, 7 });
'打印pdf文档
doc.print()
静默打印
c#
//加载pdf文档
pdfdocument doc = new pdfdocument();
doc.loadfromfile("test.pdf");
//静默打印pdf文档
doc.printsettings.printcontroller = new standardprintcontroller();
doc.print();
vb.net
'加载pdf文档
dim doc as new pdfdocument()
doc.loadfromfile("test.pdf")
'静默打印pdf文档
doc.printsettings.printcontroller = new standardprintcontroller()
doc.print()
双面打印
//加载pdf文档
pdfdocument doc = new pdfdocument();
doc.loadfromfile("test.pdf");
//判断打印机是否支持双面打印
if (doc.printsettings.canduplex)
{
//如果支持则设置双面打印模式,可选:default/simplex/horizontal/vertical
doc.printsettings.duplex = duplex.default;
//打印pdf文档
doc.print();
}
vb.net
'加载pdf文档
dim doc as new pdfdocument()
doc.loadfromfile("test.pdf")
'判断打印机是否支持双面打印
if doc.printsettings.canduplex then
'如果支持则设置双面打印模式,可选:default/simplex/horizontal/vertical
doc.printsettings.duplex = duplex.[default]
'打印pdf文档
doc.print()
end if
黑白打印
c#
//加载pdf文档
pdfdocument pdf = new pdfdocument();
pdf.loadfromfile("test.pdf");
//黑白打印pdf文档
pdf.printsettings.color = false;
pdf.print();
vb.net
'加载pdf文档
dim pdf as new pdfdocument()
pdf.loadfromfile("test.pdf")
'黑白打印pdf文档
pdf.printsettings.color = false
pdf.print()
打印时选择不同的出纸盒
c#
//加载pdf文档
pdfdocument doc = new pdfdocument();
doc.loadfromfile("test.pdf");
//设置纸盒
doc.printsettings.papersettings = delegate(object sender, pdfpapersettingseventargs e)
{
//设置页面1-50的纸张来源为纸盒1
if (1 <= e.currentpaper && e.currentpaper <= 50)
{
e.currentpapersource = e.papersources[0];
}
//设置余下页面的纸张来源为纸盒2
else
{
e.currentpapersource = e.papersources[1];
}
};
//打印pdf文档
doc.print();
vb.net
'加载pdf文档
dim doc as new pdfdocument()
doc.loadfromfile("test.pdf")
'设置纸盒
'设置页面1-50的纸张来源为纸盒1
doc.printsettings.papersettings = sub(sender as object, e as pdfpapersettingseventargs) if 1 <= e.currentpaper andalso e.currentpaper <= 50 then
e.currentpapersource = e.papersources(0)
else
'设置余下页面的纸张来源为纸盒2
e.currentpapersource = e.papersources(1)
end if
'打印pdf文档
doc.print()
将pdf文档打印多份
c#
//加载pdf文档
pdfdocument doc = new pdfdocument();
doc.loadfromfile("test.pdf");
//设置打印份数为2份
doc.printsettings.copies = 2;
//打印pdf文档
doc.print();
vb.net
'加载pdf文档
dim doc as new pdfdocument()
doc.loadfromfile("test.pdf")
'设置打印份数为2份
doc.printsettings.copies = 2
'打印pdf文档
doc.print()