0

NReco のサイトの機能セクションのサンプル リストには、MergePdf に関する行があります。API リファレンスを調べ、VisualStudio でインテリセンスを使用していますが、何も見つかりません。

メールで送信する前に、いくつかのPDFをマージしたくありません。Pdf は nreco wkhtmltopdf を使用して生成され、同じ生成では機能しなかったさまざまなヘッダーとフッターを使用して生成されるため、生成を分割し、pdf を再度マージしたいと考えています。それとも、さらに別のライブラリを関与させる必要がありますか。

4

2 に答える 2

2

私が最終的に得たものを共有するだけです。少なくとも今のところ。これは、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();
        }
    }
于 2017-11-02T20:44:58.530 に答える