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