Java 在JRuby下使用Batik/FOP SVG到PDF转换时的边框框字符

Java 在JRuby下使用Batik/FOP SVG到PDF转换时的边框框字符,java,svg,jruby,apache-fop,Java,Svg,Jruby,Apache Fop,我正在使用ApacheFop/Batik将SVG转换为PDF。运行以下代码java命令行程序时,一切都能正常工作: public byte[] convert(String svg) throws TranscoderException, java.io.IOException { ByteArrayInputStream instream = new ByteArrayInputStream(svg.getBytes(StandardCharsets.UTF_8)); Byte

我正在使用ApacheFop/Batik将SVG转换为PDF。运行以下代码java命令行程序时,一切都能正常工作:

public byte[] convert(String svg) throws TranscoderException, java.io.IOException {
    ByteArrayInputStream instream = new ByteArrayInputStream(svg.getBytes(StandardCharsets.UTF_8));
    ByteArrayOutputStream outstream = new ByteArrayOutputStream(50 * 1024);

    TranscoderInput input = new TranscoderInput(instream);
    TranscoderOutput output = new TranscoderOutput(outstream);

    Transcoder transcoder = new PDFTranscoder();
    transcoder.transcode(input, output);

    return outstream.toByteArray();
}
然而,运行在JRuby(1.7)上的ruby应用程序调用的代码会将每个文本字符包装在一个灰色框中。jruby和普通java程序都运行在同一台机器上,并使用相同的jvm(Oracle 8,仅安装了jvm)。我验证了这不是输入/输出问题,而是改变了从文件读取svg并将生成的PDF写回的方法

你知道是什么导致了这种行为吗


当log4j.logger.org.Apache.FOP记录器设置为DEBUG时,Apache FOP会添加这些框,可能是出于某种诊断目的。关闭此记录器以删除边框

在蜡染论坛上读到这篇文章,我找到了答案:

为了子孙后代,请在此提供解决方案的摘要,而不是简单地链接到外部资源。