使用NReco PdfGenerator合并pdf

时间:2017-10-29 18:34:18

标签: pdf merge wkhtmltopdf nreco

在NReco网站的功能部分,在示例列表中:有一行关于MergePdf。 我已经查看了API-reference并在visualstudio中使用了intellisense但我找不到任何东西。

在我通过邮件发送之前,我不想合并几个pdf。 Pdf是用nreco wkhtmltopdf生成的,具有不同的页眉和页脚,我无法在同一个生成中工作,所以我拆分了这一代,现在我想再次合并pdf。 或者我还需要另一个图书馆。

2 个答案:

答案 0 :(得分:1)

分享我最终的结果。至少现在(是。 它是对iTextSharp的建议解决方案的修改。

public static byte[] MergePdfs(IEnumerable<byte[]> pdfs)
    {
        using (var memoryStream = new MemoryStream())
        {
            var document = new Document(PageSize.A4);
            var writer = PdfWriter.GetInstance(document, memoryStream);

            document.Open();
            var writerDirectContent = writer.DirectContent;

            foreach (var pdf in pdfs)
            {
                var pdfReader = new PdfReader(pdf);
                var numberOfPages = pdfReader.NumberOfPages;

                for (var currentPageNumber = 1; currentPageNumber <= numberOfPages; currentPageNumber++)
                {
                    document.SetPageSize(PageSize.A4);
                    document.NewPage();

                    var page = writer.GetImportedPage(pdfReader, currentPageNumber);
                    writerDirectContent.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
                }
            }

            document.Close();

            return memoryStream.ToArray();
        }
    }

答案 1 :(得分:0)

有两种方法可以实现您提到的目标: