Заменить страницу в PDF на iText7 - PullRequest
0 голосов
/ 07 мая 2020

Я сейчас обновляю некоторые инструменты редактирования PDF с iTextSharp до iText7.

В iTextSharp был метод в классе pdfStamper: pdfStamper.ReplacePage (). Однако класс pdfStamper был удален из iText7, и у меня возникли проблемы с воспроизведением той же функциональности.

Допустим, у меня есть документ X, для которого необходимо заменить страницу 4 на страницу 1 документа Y, но я хочу, чтобы результат был сохранен в новый документ Z.

Пока у меня есть 3 строки, в которых используется метод CopyPageTo. Однако любой создаваемый PDF-документ имеет размер всего 1 КБ и поврежден.

Кто-нибудь имеет опыт работы с новым iText7 и методом CopyPageTo?

        NewPagesReader = New PdfReader(strNewPageDocPath)
        docNewPages = New PdfDocument(NewPagesReader)
        OriginalDocReader = New PdfReader(strOrigPageDocPath)
        docOringal = New PdfDocument(OriginalDocReader)

        Dim docNew As PdfDocument
        Dim NewPDFWriter As New PdfWriter(saver.FileName)
        docNew = New PdfDocument(NewPDFWriter)

        docOringal.CopyPagesTo(1, 3, docNew)
        docNewPages.CopyPagesTo(1, 1, docNew)
        docOringal.CopyPagesTo(5, 6, docNew)


        ToWriter.Close()
        docNew.Close()

1 Ответ

0 голосов
/ 07 мая 2020

Ваш код выглядит нормально. Вместо копирования всех страниц в новый документ вы также можете удалить и вставить страницу:

NewPagesReader = New PdfReader(strNewPageDocPath)
docNewPages = New PdfDocument(NewPagesReader)
OriginalDocReader = New PdfReader(strOrigPageDocPath)
Dim NewPDFWriter As New PdfWriter(saver.FileName)
docOringal = New PdfDocument(OriginalDocReader, NewPDFWriter)

docOringal.RemovePage(4)
docNewPages.CopyPagesTo(1, 1, docOringal, 4)

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