Получить страницы созданных PDF документов - PullRequest
0 голосов
/ 03 марта 2020

Я создал список, заполненный документами, которые я создал с помощью HtmlRenderer.PdfSharp.PdfGenerator. Теперь я хочу создать новый PDF-файл с объединенными страницами моих документов в списке без сохранения всех документов на моем жестком диске.

Следующий код не работал, поскольку pdfDocument не был открыт в PdfDocumentOpenMode. Импортировать. Но мне кажется, что я могу сделать это, только сохранив все документы на моем жестком диске и открыв их с помощью PdfReader.Open ().

private PdfDocument CombinePdfs(List<PdfDocument> pdfDocuments)
{
    PdfDocument combinedPdf = new PdfDocument();
    foreach (var pdfDocument in pdfDocuments)
    {
        foreach (PdfPage page in pdfDocument.Pages)
        {
            combinedPdf.AddPage(page);
        }
    }
    return combinedPdf;
}

Любая подсказка, как я могу решить эту проблему?

Редактировать:

Следующий код работал на меня.

private PdfDocument CombinePdfs(List<PdfDocument> pdfDocuments)
{
    PdfDocument combinedPdf = new PdfDocument();
    foreach (var pdfDocument in pdfDocuments)
    {
        MemoryStream stream = new MemoryStream();
        pdfDocument.Save(stream, false);
        PdfDocument importDocument = PdfReader.Open(stream, PdfDocumentOpenMode.Import);

        foreach (PdfPage page in importDocument.Pages)
        {
            combinedPdf.AddPage(page);
        }
    }

    return combinedPdf;
}

1 Ответ

0 голосов
/ 03 марта 2020

Вы можете сохранить документы PDF в MemoryStream и прочитать их оттуда, чтобы избежать файлового ввода-вывода. По крайней мере, у вас нет проблем с временными файлами на жестком диске.

...