我尝试重叠模型pdf,以查看它与我的新pdf之间的差异。
这是我的代码:
PdfReader reader = new PdfReader(WorkDir + "\\model.pdf");
PdfImportedPage page = writer.GetImportedPage(reader, 1);
pdfOut.NewPage();
if (checkBox1.Checked) writer.DirectContent.AddTemplate(page, 0, 0);
我只想在检查checkbox1时才放入页面。 但是如果未选中checkbox1,则outout pdf文件非常大,重叠的文件不可见。
我删除了重叠部分:
PdfReader reader = new PdfReader(WorkDir + "\\model.pdf");
//PdfImportedPage page = writer.GetImportedPage(reader, 1);
pdfOut.NewPage();
//if (checkBox1.Checked) writer.DirectContent.AddTemplate(page, 0, 0);
现在文件大小正常。
我做错了什么? 我认为DirectContent元素添加了页面,但是不可见。 这可以解释为什么输出文件如此之大(重叠部分文件大小为700KB,不仅仅是4KB)
答案 0 :(得分:1)
导入页面时,页面数据已添加到新文档中
PdfImportedPage page = writer.GetImportedPage(reader, 1);
后来的writer.DirectContent.AddTemplate(page, 0, 0);
只会让它可见。
因此,您可能需要
PdfReader reader = new PdfReader(WorkDir + "\\model.pdf");
pdfOut.NewPage();
if (checkBox1.Checked)
{
PdfImportedPage page = writer.GetImportedPage(reader, 1);
writer.DirectContent.AddTemplate(page, 0, 0);
}