PDFsharp запрашивает открытие PDF для импорта при добавлении страниц - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть 3 PDF-файла, я хочу добавить страницы из них в выходной PDF-файл.Я пытаюсь сделать следующее: импортировать первый PDF -> создать новый документ PDF -> добавить страницы -> нарисовать на определенной странице, и, наконец, я хочу добавить страницы из этого документа в основной документ PDF, который будет экспортирован.При необходимости продолжите делать то же самое со вторым файлом PDF.

ERROR: A PDF document must be opened with PdfDocumentOpenMode.Import to import pages from it.

Из основного класса я вызываю метод, который обрабатывает PDF:

        Pdftest pdftest = new Pdftest();
        PdfDocument pdf = PdfReader.Open(@"C:\Users\pdf_file.pdf", PdfDocumentOpenMode.Import);
        pdftest.CreatePages(pdf_file);

Класс Pdftest:

public class Pdftest
{
    PdfDocument PDFNewDoc = new PdfDocument();
    XFont fontChico = new XFont("Verdana", 8, XFontStyle.Bold);
    XFont fontGrande = new XFont("Verdana", 12, XFontStyle.Bold);
    XBrush fontBrush = XBrushes.Black;

    public void CreatePages(PdfDocument archivoPdf)
    {
        PdfDocument NuevoDoc = new PdfDocument();

        for (int Pg = 0; Pg < archivoPdf.Pages.Count; Pg++)
        {
            PdfPage pp = NuevoDoc.AddPage(archivoPdf.Pages[Pg]);
        }

        XGraphics Graficador = XGraphics.FromPdfPage(NuevoDoc.Pages[0]);

        XPoint coordinate = new XPoint();
        coordinate.X = XUnit.FromInch(1.4);
        coordinate.Y = XUnit.FromInch(1.8);

        graficador.DrawString("TEST", fontChico, fontBrush, coordinates);

        for (int Pg = 0; Pg < NuevoDoc.Pages.Count; Pg++)
        {
            PdfPage pp = PDFNewDoc.AddPage(NuevoDoc.Pages[Pg]); //Error mentioned.
        }
    }
 }

1 Ответ

0 голосов
/ 19 декабря 2018

Сообщение об ошибке относится к NuevoDoc.Вы должны сохранить NuevoDoc в MemoryStream и заново открыть его в режиме импорта, чтобы ваш код заработал.

Я не понимаю, почему вы пытаетесь копировать страницы из NuevoDoc в PDFNewDoc - такскорее всего, вы можете избежать MemoryStream при оптимизации кода.

...