当打印pdf文档的时候,默认情况下纸张大小是a4。但是有些情况下原文档不是a4大小,我们需要保持原来的页面大小怎么办呢?这个时候就需要自定义纸张大小来实现这个功能。本文将对此做详细介绍.
情况1 使用虚拟打印机自定义纸张大小打印,比如保持原来页面大小打印到pdf。
c#
//加载需要打印的pdf文档
spire.pdf.pdfdocument doc = new spire.pdf.pdfdocument();
doc.loadfromfile(filename);
//获取原文档第一页的纸张大小,这里的单位是point
sizef size = doc.pages[0].size;
//实例化papersize对象,设置其宽高
//需要特别注意的是这里涉及到单位的转换,papersize的宽高参数默认单位是百英寸
papersize paper = new papersize("custom", (int)size.width/72*100, (int)size.height/72*100);
paper.rawkind = (int)paperkind.custom;
//设置打印的纸张大小为原来文档的大小
doc.printsettings.papersize = paper;
//需要选择fitsize打印模式
doc.printsettings.selectsinglepagelayout(pdfsinglepagescalingmode.fitsize, true);
//打印
doc.print();
vb.net
'加载需要打印的pdf文档
dim doc as new spire.pdf.pdfdocument()
doc.loadfromfile(filename)
'获取原文档第一页的纸张大小,这里的单位是point
dim size as sizef = doc.pages(0).size
'实例化papersize对象,设置其宽高
'需要特别注意的是这里涉及到单位的转换,papersize的宽高参数默认单位是百英寸
dim paper as new papersize("custom", cint(size.width) / 72 * 100, cint(size.height) / 72 * 100)
paper.rawkind = cint(paperkind.[custom])
'设置打印的纸张大小为原来文档的大小
doc.printsettings.papersize = paper
'需要选择fitsize打印模式
doc.printsettings.selectsinglepagelayout(pdfsinglepagescalingmode.fitsize, true)
'打印
doc.print()
情况2 使用真实打印机设置纸盒中的纸张大小打印,比如原来a4的文档打印成a3的大小。
c#
//加载需要打印的pdf文档
spire.pdf.pdfdocument doc = new spire.pdf.pdfdocument();
doc.loadfromfile(filename);
papersize p = null;
//实例化一个printdocument对象来获取当前打印机的纸盒信息
printdocument printdoc = new printdocument();
//遍历打印机纸盒里面的纸张,找到需要的a3
foreach (papersize ps in printdoc.printersettings.papersizes)
{
if (ps.papername.equals("a3"))
{
p = ps;
break;
}
}
//设置打印的纸张大小为a3
doc.printsettings.papersize = p;
//打印
doc.printsettings.selectsinglepagelayout(pdfsinglepagescalingmode.fitsize, true);
doc.print();
vb.net
'加载需要打印的pdf文档
dim doc as new spire.pdf.pdfdocument()
doc.loadfromfile(filename)
dim p as papersize = nothing
'实例化一个printdocument对象来获取当前打印机的纸盒信息
dim printdoc as new printdocument()
'遍历打印机纸盒里面的纸张,找到需要的a3
for each ps as papersize in printdoc.printersettings.papersizes
if ps.papername.equals("a3") then
p = ps
exit for
end if
next
'设置打印的纸张大小为a3
doc.printsettings.papersize = p
'打印
doc.printsettings.selectsinglepagelayout(pdfsinglepagescalingmode.fitsize, true)
doc.print()