pdf的页边距是指页面的主内容区域和页面边缘之间的距离。它和word的页边距不同,pdf文档中的页边距很难更改。因为adobe没有提供直接的方法用于操作页边距。但是我们可以通过缩放页面内容,从而达到改变页边距的目的。本文将为您介绍如何在不改变页面大小的情况下,使用spire.pdf调整页边距。
c#
//创建pdfdocument实例并加载文档
pdfdocument testdoc = new pdfdocument();
testdoc.loadfromfile(@"f:\201711工作\demo-pdf\spire.pdf\demos\data\addimagestamp.pdf");
//创建一个新文档实例
pdfdocument newdoc = new pdfdocument();
//定义新文档要增加的页边距
float top = 50;
float bottom = 50;
float left = 50;
float right = 50;
foreach (pdfpagebase page in testdoc.pages)
{
//给新文档添加新页面,设置页面大小与源文档相同
pdfpagebase newpage = newdoc.pages.add(page.size, new pdfmargins(0));
//设置新文档内容的缩放比例
newpage.canvas.scaletransform((page.actualsize.width - left - right)/page.actualsize.width ,
(page.actualsize.height - top - bottom)/page.actualsize.height);
//以模板的形式将源文档画到新文档
newpage.canvas.drawtemplate(page.createtemplate(), new pointf(left, top));
}
//保存并打开结果文档
newdoc.savetofile(@"result.pdf", fileformat.pdf);
system.diagnostics.process.start(@"result.pdf");
vb.net
'创建pdfdocument实例并加载文档
dim testdoc as new pdfdocument()
testdoc.loadfromfile("f:\201711工作\demo-pdf\spire.pdf\demos\data\addimagestamp.pdf")
'创建一个新文档实例
dim newdoc as new pdfdocument()
'定义新文档要增加的页边距
dim top as single = 50
dim bottom as single = 50
dim left as single = 50
dim right as single = 50
for each page as pdfpagebase in testdoc.pages
'给新文档添加新页面,设置页面大小与源文档相同
dim newpage as pdfpagebase = newdoc.pages.add(page.size, new pdfmargins(0))
'设置新文档内容的缩放比例
newpage.canvas.scaletransform((page.actualsize.width - left - right) / page.actualsize.width, (page.actualsize.height - top - bottom) / page.actualsize.height)
'以模板的形式将源文档画到新文档
newpage.canvas.drawtemplate(page.createtemplate(), new pointf(left, top))
next
'保存并打开结果文档
newdoc.savetofile("result.pdf", fileformat.pdf)
system.diagnostics.process.start("result.pdf")
源文档:
结果文档: