java - 连接两个 PostScript 期间的 Ghost4j 类强制转换异常

标签 java ghostscript postscript ghost4j

我正在尝试使用 ghost4j 0.5.0 将两个 PostScript 文件连接到一个文件,如下所示:

final PSDocument[] psDocuments = new PSDocument[2];
psDocuments[0] = new PSDocument();
psDocuments[0].load("1.ps");
psDocuments[1] = new PSDocument();
psDocuments[1].load("2.ps");
psDocuments[0].append(psDocuments[1]);
psDocuments[0].write("3.ps");

在这个简化的过程中,我收到了上述“append”行的以下异常消息:

org.ghost4j.document.DocumentException: java.lang.ClassCastException:   
org.apache.xmlgraphics.ps.dsc.events.UnparsedDSCComment cannot be cast to 
org.apache.xmlgraphics.ps.dsc.events.DSCCommentPage

到目前为止,我还没有找出问题所在 - 也许是某个 PostScript 文件中存在某种问题?

因此,我们将不胜感激。

编辑:

我使用 GhostScript 命令行工具进行了测试:

gswin32.exe -dQUIET -dBATCH -dNOPAUSE -sDEVICE=pswrite -sOutputFile="test.ps" --filename "1.ps" "2.ps"

这会产生一个文档,其中 1.ps 和 2.ps 合并到一个(!)页面(即覆盖)。 删除 --filename 时,生成的文档将是一个具有预期两页的 PostScript。

最佳答案

发生异常的原因是 2 个文档之一不遵循 Adob​​e 文档结构约定 (DSC),如果您想使用 Document append 方法,则必须遵守该约定.

请改用SafeAppenderModifier。这里有一个例子:http://www.ghost4j.org/highlevelapisamples.html (将 PDF 文档附加到 PostScript 文档)

关于java - 连接两个 PostScript 期间的 Ghost4j 类强制转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20144068/

相关文章:

linux - 在 Linux 上将格式错误的 PDF 批量转换为 TIF

visual-c++ - 使用 VC++ 将 Postscript 文档发送到打印机

text - 如何在 PostScript 中使页面上的旋转文本居中

Java:如何在 JFileChooser 中读取 "Files of type"

java - 使用 OpenCv 时,Java 中的 Mat Data type not supported 错误

java - 使用 Dom 解析器加载 XML 文件时出现问题

java - 如何使用 Apache POI 列出 Microsoft Office 文档中的所有嵌入文件?

c# - Ghostscript 批处理文件 - 执行并退出

pdf - 使用 Ghostscript 为 postscript 文件中的某些页面添加双面选项

pdf - 将 postscript 转换为 a4 格式 pdf