Невозможно прочитать PDF с помощью itextpdf - PullRequest
1 голос
/ 26 мая 2020

Я использую банку itextpdf-5.5.4 для объединения или добавления двух файлов PDF в один PDF.

Я не получал никаких ошибок или исключений при запуске кода, но отображался под текстом в объединенном PDF-файле. Когда я открывал отдельные PDF-файлы, у меня не появлялся текст ниже.

Документ, который вы пытаетесь загрузить, требует Adobe Reader 8 или выше. Возможно, у вас не установлен Adobe Reader или ваша среда просмотра может быть неправильно настроена для использования Adobe Reader.

Для получения информации о том, как установить Adobe Reader и настроить среду просмотра, см. http://www.adobe.com/go/pdf_forms_configure.

void mergePdfFiles(List<InputStream> inputPdfList, OutputStream outputStream) throws Exception {
    // Create document and pdfReader objects.
    Document document = new Document();
    List<PdfReader> readers = new ArrayList<PdfReader>();
    int totalPages = 0;
    // Create pdf Iterator object using inputPdfList.
    Iterator<InputStream> pdfIterator = inputPdfList.iterator();

    // Create reader list for the input pdf files.
    while (pdfIterator.hasNext()) {
        InputStream pdf = pdfIterator.next();
        PdfReader pdfReader = new PdfReader(pdf);
        readers.add(pdfReader);
        totalPages = totalPages + pdfReader.getNumberOfPages();
    }

    // Create writer for the outputStream
    PdfWriter writer = PdfWriter.getInstance(document, outputStream);

    // Open document.
    document.open();

    // Contain the pdf data.
    PdfContentByte pageContentByte = writer.getDirectContent();

    PdfImportedPage pdfImportedPage;
    int currentPdfReaderPage = 1;
    Iterator<PdfReader> iteratorPDFReader = readers.iterator();

    // Iterate and process the reader list.
    while (iteratorPDFReader.hasNext()) {
        PdfReader pdfReader = iteratorPDFReader.next();
        // Create page and add content.
        while (currentPdfReaderPage <= pdfReader.getNumberOfPages()) {
            document.newPage();
            pdfImportedPage = writer.getImportedPage(pdfReader, currentPdfReaderPage);
            pageContentByte.addTemplate(pdfImportedPage, 0, 0);
            currentPdfReaderPage++;
        }
        currentPdfReaderPage = 1;
    }

    // Close document and outputStream.
    outputStream.flush();
    document.close();
    outputStream.close();

    System.out.println("Pdf files merged successfully.");
}

public static void main(String args[]) {
    try {
        List<InputStream> inputPdfList = new ArrayList<InputStream>();
        inputPdfList.add(new FileInputStream("pdf1.pdf"));
        inputPdfList.add(new FileInputStream("pdf2.pdf"));
        OutputStream outputStream = new FileOutputStream("Merge-PDF.pdf");
        ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
        mergePdfFiles(inputPdfList, byteStream);
        byte[] byteS = byteStream.toByteArray();
        outputStream.write(byteS);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Пожалуйста, помогите мне в этом.

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