Как добавить PDF-файл к существующему с помощью iText? - PullRequest
0 голосов
/ 04 июля 2018

В приложении я пытаюсь добавить несколько файлов PDF в один уже существующий файл. Используя iText я нашел это

Используя iText, я нашел это руководство, которое, в моем случае, не работает.

Вот несколько способов, которыми я пытался заставить это работать.

String path = "path/to/destination.pdf";
PdfCopy mergedFile = new PdfCopy(pdf, new FileOutputStream(path));

PdfReader reader;
for(String toMergePath : toMergePaths){
    reader = new PdfReader(toMergePath);
    mergedFile.addDocument(reader);
    mergedFile.freeReader(reader);

    reader.close();
}

mergedFile.close();

Когда я пытаюсь добавить документ, logcat говорит мне, что документ не открыт.

Но pdf (исходный документ) уже открыт другими методами и закрыт только после этого. И, mergedFile точно так же, как в учебнике, который, я считаю, должен быть правильным.

Кто-нибудь испытывал такую ​​же проблему? Иначе, кто-нибудь знает лучший способ сделать то, что я хочу сделать?

Я видел, как другие решения копировали кусочек с одной страницы и добавляли их в новый файл, но я боюсь, что это «скомпилирует» нужные мне аннотации.

Спасибо за помощь,

сердечный привет,

Матье Менье

1 Ответ

0 голосов
/ 04 июля 2018

Надеюсь, этот код поможет вам.

public static void mergePdfs(){
     try {
          String[] files = { "D:\\1.pdf" ,"D:\\2.pdf"  ,"D:\\3.pdf" ,"D:\\4.pdf"};
          Document pDFCombineUsingJava = new Document();
          PdfCopy copy = new PdfCopy(pDFCombineUsingJava , new FileOutputStream("D:\\CombinedFile.pdf"));
          pDFCombineUsingJava.open();
          PdfReader ReadInputPDF;
          int number_of_pages;
          for (int i = 0; i < files.length; i++) {
                  ReadInputPDF = new PdfReader(files[i]);
                  copy.addDocument(ReadInputPDF);
                  copy.freeReader(ReadInputPDF);
          }
          pDFCombineUsingJava.close();
        }
        catch (Exception i)
        {
            System.out.println(i);
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...