未找到JMS TextMessage itext PDF标头签名

时间:2011-03-03 17:04:38

标签: spring jms websphere itext

我有一个侦听器,它接收一个包含pdf内容的JMS TextMessage。

我正在做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 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

为什么它是TextMessage而不是BytesMessage?

正如Mark所写,PDF包含二进制数据。所以看起来JMS通信的发送方也必须改变。

相关问题