JMS TextMessage itext PDF-подпись заголовка не найдена

У меня есть слушатель, который получает JMS TextMessage, в котором есть PDF-контент.

Я делаю getBytes ("Cp037"), так как он исходит от мэйнфрейма

когда я запускаю строку "PdfReader reader = new PdfReader (bais)";

происходит сбой, если подпись заголовка PDF не найдена.

Это должен быть действительный PDF, так как другое приложение может получить PDF.

В чем может быть проблема? Спасибо

import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;

            TextMessage txtMessage = (TextMessage)message;
                ByteArrayInputStream bais = new ByteArrayInputStream(txtMessage.getText().getBytes("Cp037"));

                PdfReader reader = new PdfReader(bais);

2 ответа

У меня была та же ошибка, и я просто изменил свой PdfReader с чтения InputStreams для чтения строк. Итак, он отлично работает с:

public static void doMerge(List<String> list, OutputStream outputStream)
        throws DocumentException, IOException {
    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document, outputStream);
    document.open();
    PdfContentByte cb = writer.getDirectContent();

    for (String in : list) {
        PdfReader reader = new PdfReader(in);
        for (int i = 1; i <= reader.getNumberOfPages(); i++) {
            document.newPage();
            // import the page from source pdf
            PdfImportedPage page = writer.getImportedPage(reader, i);
            // add the page to the destination pdf
            cb.addTemplate(page, 0, 0);
        }
    }

    outputStream.flush();
    document.close();
    outputStream.close();
}

* Первоначально я взял этот код с http://www.mindfiresolutions.com/Java-Merging-multiple-PDFs-into-a-single-PDF-using-iText-671.php

Почему это TextMessage вместо BytesMessage?

Как писал Марк, PDF-файл содержит двоичные данные. Таким образом, похоже, что сторона отправителя JMS-связи тоже должна быть изменена.

Другие вопросы по тегам