我使用Apache Batik成功地将SVG文件转换为PDF。
以下代码用于生成PDF:
import org.apache.fop.svg.PDFTranscoder;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.transcoder.TranscoderOutput;
...
File svgFile = new File("./target/test.svg");
...
PDFTranscoder transcoder = new PDFTranscoder();
try (FileInputStream fileInputStream = new FileInputStream(svgFile); FileOutputStream fileOutputStream = new FileOutputStream(new File("./target/test-batik.pdf"))) {
TranscoderInput transcoderInput = new TranscoderInput(fileInputStream);
TranscoderOutput transcoderOutput = new TranscoderOutput(fileOutputStream);
transcoder.transcode(transcoderInput, transcoderOutput);
}现在我想影响生成的PDF的页面大小,所以我得到了一个A4的页面大小。我怎么能这么做呢?
我已经尝试了一些关键提示,但没有效果。
发布于 2018-06-02 05:35:01
我最近也遇到了同样的问题。这可能不能完全解决您的问题,但我至少能够使用以下Groovy (几乎是Java)代码为页面(本例中为美国字母大小)生成具有正确纵横比的PDF:
...
TranscoderInput transcoderInput = new TranscoderInput(fileInputStream)
TranscoderOutput transcoderOutput = new TranscoderOutput(fileOutputStream)
PDFTranscoder transcoder = new PDFTranscoder()
int dpi = 100
transcoder.addTranscodingHint(PDFTranscoder.KEY_WIDTH, dpi * 8.5 as Float)
transcoder.addTranscodingHint(PDFTranscoder.KEY_HEIGHT, dpi * 11 as Float)
transcoder.transcode(transcoderInput, transcoderOutput)希望这能有所帮助。
https://stackoverflow.com/questions/41347776
复制相似问题