我在网上搜索了有关如何执行此操作的示例。我发现有些人似乎比他们需要的更多地参与其中。所以我的问题是,使用 iTextSharp,是否有一种相当简洁的方法将一个 PDF 文档附加到另一个 PDF 文档?
最好这不会涉及第三个文件。只需打开第一个 PDF 文档,将第二个 PDF 文档附加到第一个 PDF 文档,然后将它们都关闭。
我确实可能错过了一些东西,但我做了一些更简单的事情。我承认这个解决方案可能不会更新书签(正如迄今为止的最佳答案),但它对我来说完美无缺。由于我将文档与可填写的表单合并,因此我使用 PdfCopyFields 而不是 PdfCopy。
这是代码(我已经删除了所有错误处理以使实际代码更明显,如果您打算使用代码,则添加 try..finally 来关闭打开的资源):
void MergePdfStreams(List<Stream> Source, Stream Dest)
{
PdfCopyFields copy = new PdfCopyFields(Dest);
foreach (Stream source in Source)
{
PdfReader reader = new PdfReader(source);
copy.AddDocument(reader);
}
copy.Close();
}
您可以传递任何流,无论是 FileStream、MemoryStream(从数据库读取 PDF 时很有用,不需要临时文件等)
使用示例:
void TestMergePdfStreams()
{
List<Stream> sources = new List<Stream>()
{
new FileStream("template1.pdf", FileMode.Open),
new FileStream("template2.pdf", FileMode.Open),
new MemoryStream((byte[])someDataRow["PDF_COLUMN_NAME"])
};
MergePdfStreams(sources, new FileStream("MergedOutput.pdf", FileMode.Create));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)