有时候,我们会需要将多个不同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")