我正在为同一个客户创建各种各样的可变数据语句(90+)。我们每个工作日打印10K左右的每个声明。有些陈述在页面的左上角有一个特定的标识,有些则故意省略。有些陈述在底部附近有图像和/或文字,有些则故意没有。每个声明都会添加/省略这些以及其他许多内容。
我不确定是否有可能,但是有可能分层' PDF相互叠加?如果是这样,我想我可以添加'层'取决于每个声明的需要。然后产生的分层' PDF将成为我的基础文档,然后我可以继续添加数据。
否则我认为我需要为每种潜在的场景创建一个PDF。
(顺便说一下,我试图有条件地将这些项目直接添加为图像,但它会使事情变慢一些。)
修改 我试图使用此代码,但最终输出仅显示最后添加的模板。
string[] templates = new string[]{
pdfTemplate
,thingsTemplate
};
using (FileStream filestream = new FileStream(finalTemplate, FileMode.OpenOrCreate, FileAccess.Write))
using (iTextSharp.text.Document document = new iTextSharp.text.Document(PageSize.LETTER))
using (PdfWriter writer = PdfWriter.GetInstance(document, filestream))
{
document.Open();
PdfContentByte cb = writer.DirectContent;
PdfImportedPage page;
for (int i = 0; i < templates.Length; i++)
{
page = writer.GetImportedPage(new PdfReader(templates[i]), 1);
cb.AddTemplate(page, 1f, 0, 0, 1, 0, 0);
}
document.Close();
}
答案 0 :(得分:2)
是的,可以将不同的PDF叠加在一起。
看看Layers示例。我们有一个包含4个页面的文件:layers_orig.pdf,然后我们将4个页面添加到单个页面:layers.pdf。
嗯,不完全是你添加它们的方式,但你所描述的内容被称为superimposing,而Stationery示例或多或少都在做你所要求的。
我们创建了一个PDF,但在创建它的同时,我们添加了一些公司文具。这是文具:stationery.pdf。这是最终结果:text_on_stationery.pdf。
您可以在此过程中添加任意数量的信纸模板。