Itextsharp pdfwriter getimported 页面增长文件大小

Itextsharp pdfwriter getimported page grow file size

我尝试重叠模型 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);

我只想在选中复选框1 时才放置页面。 但是如果不勾选checkbox1,输出的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)

导入页面时页面数据已经添加到新文档中

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);
}