2016-01-07 26 views
3

我使用Apache FOP/Batik将SVG转换为PDF。当运行下面的代码java命令行程序,一切完美的作品:在JRuby下使用Batik/FOP SVG进行PDF转换时的边框字符

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,大概是某种诊断目的

Characters with jruby

回答

相关问题