2016-01-07 60 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

回答

相關問題