iText7 - CopyPagesTo из pdfDocument в другой и запись в MemoryStream - PullRequest
0 голосов
/ 26 января 2020

У меня есть две html строки, я пытаюсь записать их обе в 2 memoryStreams, затем прочитать один pdfDocument и CopyPagesTo в другой pdfDocument, а затем, наконец, вернуть memoryStream с объединенными документами.

{
    string Document = "<p>Hello to All</p>";
    string newPage = "<p>Additional Page</p>";
    var mainStream = new MemoryStream();

    using (PdfWriter pdfWriter = new PdfWriter(mainStream))
    {
        pdfWriter.SetCloseStream(false);
        using (var document = HtmlConverter.ConvertToDocument(Document, pdfWriter)) { }
    }
    mainStream.Position = 0;
    var newPageStream = new MemoryStream();

    using (PdfWriter pdfWriter1 = new PdfWriter(newPageStream))
    {
        pdfWriter1.SetCloseStream(false);
        using (var document = HtmlConverter.ConvertToDocument(newPage, pdfWriter1)) { }
    };

    mainStream = addNewPage(mainStream, newPageStream);
    return mainStream;
}

Код для добавления новой страницы:

public static MemoryStream addNewPage(MemoryStream mainStream, MemoryStream newPageStream)
{
    PdfWriter writer = new PdfWriter(mainStream);
    PdfDocument pdfDoc = new PdfDocument(writer);
    pdfDoc.InitializeOutlines();
    PdfDocument addedDoc = new PdfDocument(new PdfReader(newPageStream));
    addedDoc.CopyPagesTo(1, addedDoc.GetNumberOfPages(), pdfDoc);
    mainStream.Position = 0;
    using (PdfReader reader = new PdfReader(mainStream))
    {

        writer.SetCloseStream(false);
        using (pdfDoc = new PdfDocument(reader, writer))
        {
            int z = pdfDoc.GetNumberOfPages();
        }

    }
    addedDoc.Close();
    return mainStream;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...