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,大概是某種診斷目的
請給後人的緣故提供解決方案的概要這裏,而不是簡單地鏈接到外部資源。 – Suever