有时候,我们会需要将多个不同pdf页面重叠为一个页面,该文将从下面两个方面介绍如何使用c#重叠pdf页面。
- 两个pdf文件中各有一个页面,重叠成一个页面。
- 同一个pdf文件中有两个页面,重叠成一个页面。
两个pdf文件里各有一个页面,重叠成一个页面。该示例文档一是文字,文档二是一张图片,通过spire.pdf重叠后,会将图片和文字叠加并形成一个新的pdf图文并存的文档。
c#
//加载两个pdf文档
pdfdocument doc1 = new pdfdocument();
doc1.loadfromfile("sample1.pdf");
pdfdocument doc2 = new pdfdocument();
doc2.loadfromfile("sample2.pdf");
//创建模板
pdftemplate template = doc1.pages[0].createtemplate();
foreach (pdfpagebase page in doc2.pages)
{
//设置透明度和重叠样式
page.canvas.settransparency(1f, 1f, pdfblendmode.overlay);
//将第一个页面的内容写人第二个页面,并设置其位置
page.canvas.drawtemplate(template, new pointf(0, 120));
}
//保存文档
doc2.savetofile("overlay1.pdf");
system.diagnostics.process.start("overlay1.pdf");
vb.net
'加载两个pdf文档
dim doc1 as new pdfdocument()
doc1.loadfromfile("sample1.pdf")
dim doc2 as new pdfdocument()
doc2.loadfromfile("sample2.pdf")
'创建模板
dim template as pdftemplate = doc1.pages(0).createtemplate()
for each page as pdfpagebase in doc2.pages
'设置透明度和重叠样式
page.canvas.settransparency(1f, 1f, pdfblendmode.overlay)
'将第一个页面的内容写人第二个页面,并设置其位置
page.canvas.drawtemplate(template, new pointf(0, 120))
next
'保存文档
doc2.savetofile("overlay1.pdf")
system.diagnostics.process.start("overlay1.pdf")
同一个pdf文件里有2个页面。重叠成一个页面。我们将第二页的数据写入第一页后,再删除掉原来的第二页,这样就会获得一个新的pdf页面,并包含了先前两页的所有内容。
c#
//加载示例文档
pdfdocument doc = new pdfdocument("sample.pdf");
//创建模板
pdftemplate template = doc.pages[1].createtemplate();
//获取第一个页面
pdfpagebase page1 = doc.pages[0];
//获取第二个页面
pdfpagebase page2 = doc.pages[1];
//设置透明度和重叠样式
page2.canvas.settransparency(1f, 1f, pdfblendmode.overlay);
//将第二页中的内容写入第一页并设置其位置
page1.canvas.drawtemplate(template, new pointf(0, 30));
//删除第二页
doc.pages.removeat(1);
//保存文档
doc.savetofile("overlay2.pdf");
vb.net
'加载示例文档
dim doc as new pdfdocument("sample.pdf")
'创建模板
dim template as pdftemplate = doc.pages(1).createtemplate()
'获取第一个页面
dim page1 as pdfpagebase = doc.pages(0)
'获取第二个页面
dim page2 as pdfpagebase = doc.pages(1)
'设置透明度和重叠样式
page2.canvas.settransparency(1f, 1f, pdfblendmode.overlay)
'将第二页中的内容写入第一页并设置其位置
page1.canvas.drawtemplate(template, new pointf(0, 30))
'删除第二页
doc.pages.removeat(1)
'保存文档
doc.savetofile("overlay2.pdf")