【问题标题】:JMS TextMessage itext PDF header signature not found未找到 JMS TextMessage itext PDF 标头签名
【发布时间】:2011-07-08 05:24:30
【问题描述】:

我有一个监听器,它接收一个 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);

【问题讨论】:

  • @john 你能试试txtMessage.getText().getBytes(System.getProperty("file.encoding"))吗?
  • 不,它不起作用。我认为这可能与 JMS 相关...我收到的是 TextMessage 而不是 BytesMessage。我确实在第一行看到了 PDF-1.3,但在那之前我看到了一堆奇怪的字符
  • 好的。您提到的其他应用程序如何处理它?
  • 您不得将 PDF 转换为文本。里面有一堆不能改变的二进制信息。
  • 奇怪的字符可能是BOM序列

标签: spring jms websphere itext


【解决方案1】:

为什么是 TextMessage 而不是 BytesMessage?

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

【讨论】:

    【解决方案2】:

    我遇到了同样的错误,我只是将我的 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

    【讨论】:

      猜你喜欢
      • 2012-09-13
      • 2012-09-03
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多