对此问道道歉,但我在iText网站上看不到任何确定的内容.
我有几个产品数据表.每个都是一个单独的文件.我想要做的是使用iText根据网络表单的答案生成摘要/推荐的一组操作,然后附加到所有相关的数据表.这样,我只需要在浏览器中打开一个新选项卡来打印所有信息,而不是为摘要打开一个,并为每个所需的数据表打开一个.
那么,是否可以使用iText以编程方式执行此操作?
mkl*_*mkl 12
是的,您可以使用iText 7合并PDF.例如,查看iText 7 Jump-Start教程示例C06E04_88th_Oscar_Combine,关键代码是:
PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
PdfMerger merger = new PdfMerger(pdf);
//Add pages from the first document
PdfDocument firstSourcePdf = new PdfDocument(new PdfReader(SRC1));
merger.merge(firstSourcePdf, 1, firstSourcePdf.getNumberOfPages());
//Add pages from the second pdf document
PdfDocument secondSourcePdf = new PdfDocument(new PdfReader(SRC2));
merger.merge(secondSourcePdf, 1, secondSourcePdf.getNumberOfPages());
firstSourcePdf.close();
secondSourcePdf.close();
pdf.close();
Run Code Online (Sandbox Code Playgroud)
(C06E04_88th_Oscar_Combine方法createPdf)
根据您的使用情况,您可能希望将PdfDenseMerger与其辅助类PageVerticalAnalyzer一起使用,而不是使用PdfMerger此处.它试图将来自多个源页面内容到一个单一的目标页面和对应的iText 5 PdfVeryDenseMergeTool从这个答案.由于PDF文件的性质,这仅适用于没有页眉,页脚和类似工件的PDF.
小智 6
我找到了一个效果很好的解决方案。
public byte[] Combine(IEnumerable<byte[]> pdfs)
{
using (var writerMemoryStream = new MemoryStream())
{
using (var writer = new PdfWriter(writerMemoryStream))
{
using (var mergedDocument = new PdfDocument(writer))
{
var merger = new PdfMerger(mergedDocument);
foreach (var pdfBytes in pdfs)
{
using (var copyFromMemoryStream = new MemoryStream(pdfBytes))
{
using (var reader = new PdfReader(copyFromMemoryStream))
{
using (var copyFromDocument = new PdfDocument(reader))
{
merger.Merge(copyFromDocument, 1, copyFromDocument.GetNumberOfPages());
}
}
}
}
}
}
return writerMemoryStream.ToArray();
}
}
Run Code Online (Sandbox Code Playgroud)
使用
DirectoryInfo d = new DirectoryInfo(INPUT_FOLDER);
var pdfList = new List<byte[]> { };
foreach (var file in d.GetFiles("*.pdf"))
{
pdfList.Add(File.ReadAllBytes(file.FullName));
}
File.WriteAllBytes(OUTPUT_FOLDER + "\\merged.pdf", Combine(pdfList));
Run Code Online (Sandbox Code Playgroud)
作者: https: //www.nikouusitalo.com/blog/combining-pdf-documents-using-itext7-and-c/
| 归档时间: |
|
| 查看次数: |
2723 次 |
| 最近记录: |