JMS TextMessage itext PDF-подпись заголовка не найдена - PullRequest
1 голос
/ 03 марта 2011

У меня есть прослушиватель, который получает 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 ]

2 голосов
/ 05 сентября 2012

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

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

0 голосов
/ 05 марта 2011

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

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

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