0

当我尝试将某些 PDF 转换为 JPEG 时出现异常,并显示消息“prolog 中不允许内容”。我正在执行一个两步操作,将 SVG 转换为 PDF,然后将 PDF 转换为图像。

当我尝试执行 Batik 的直接流程时,我遇到了这个问题。

这是我的代码。

File pdfFile= new File("path to pdffile");
InputStream in = new java.io.FileInputStream(pdfFile);
JPEGTranscoder transcoder = new JPEGTranscoder();
transcoder.addTranscodingHint(JPEGTranscoder.KEY_XML_PARSER_CLASSNAME,
        "org.apache.crimson.parser.XMLReaderImpl");
transcoder.addTranscodingHint(JPEGTranscoder.KEY_QUALITY,
        new Float(1.0));
TranscoderInput input = new TranscoderInput(in);
OutputStream ostream = new FileOutputStream("path to jp file here!");
TranscoderOutput output = new TranscoderOutput(ostream);
transcoder.transcode(input, output);
ostream.close();
4

2 回答 2

0

Batik转码器期望将 SVG 数据作为输入,而不是 pdf 文档。

于 2012-11-07T16:33:12.667 回答
0

我找不到任何建议您可以使用 Batik 将 PDF 转换为 JPEG 的内容。顺便说一句,Batik 是一个 XML 图形库,而不是通用的转码器库。从 PDF 转换为 JPEG 不是它的用途,它用于显示和/或将 SVG 输入转码为某些图像输出。

现在,话虽这么说,你有什么理由不能直接从 SVG 转到 JPEG 吗?或者使用 Batik 将 SVG 转码为 PDF,然后使用 Batik 之外的其他库将 PDF 转码为 JPEG?您对这种方法有什么担忧?

于 2012-11-07T16:33:25.093 回答