Как извлечь массив byte [] из PdfDocument - PullRequest
0 голосов
/ 25 марта 2019

После долгих исследований я все еще не могу найти способ извлечь byte[] из объекта PdfDocument.Как мне этого добиться?

Я пробовал с FileInputStream, но на самом деле у меня нет «физического пути» PdfDocument, потому что я создаю его программным путем.Более того, я не очень знаком с byte[].

Может кто-нибудь помочь мне с этим?

    PdfDocument pdfDocumentWithoutSplit = getPdfUtils().generatePdfDocumentByMedia(shippingLabel);

        for (int i = 1; i < pdfDocumentWithoutSplit.getNumberOfPages() + 1; i++) {
            final ByteArrayOutputStream pdfByteArray = new ByteArrayOutputStream();
            final PdfDocument pdfDocument = new PdfDocument(new PdfWriter(pdfByteArray));

            pdfDocument.movePage(pdfDocumentWithoutSplit.getPage(i), i);
            pdfByteArray.close();
             //now here I need to get the bytes of each pdfDocument somehow

        }

Приветствия

Ответы [ 2 ]

0 голосов
/ 25 марта 2019
        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
        final PdfDocument pdfDocument = new PdfDocument(new PdfWriter(baos ));
        pdfDocument.movePage(pdfDocumentWithoutSplit.getPage(i), i);
        pdfDocument.close();
        // should close the PdfWriter, and hence the ByteArrayOutputStream
        baos .close();
        byte[] bytes = baos .toByteArray();

Закрытие будет сбрасывать любые буферизованные данные в памяти и заполнять ByteArrayOutputStream.

0 голосов
/ 25 марта 2019

Все в PDF должно быть обработано как строка. Сначала вам нужно будет найти физический путь (вы можете использовать регулярное выражение или аналогичную обработку строк для поиска пути на основе того, как вы его генерируете и на каком языке вы используете). Затем найдите в PDF-файле с помощью программы чтения PDF-файлов (поскольку это не простой текстовый документ) строку, которая выглядит как ваш байтовый массив. Наконец, вам нужно будет преобразовать строку в массив, извлекая данные внутри и используя метод разбиения или создания массива. Удачи.

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