[英]pdfbox: how to solve font (STSong-Light) problem when converting pdf to image?
我正在使用 pdfbox 2.0.26 將 pdf 轉換為圖像。 maven 依賴關系如下。
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>2.0.26</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.26</version>
</dependency>
我寫的程序就像
FileInputStream fin = new FileInputStream("/path/to/sample.pdf");
try(final PDDocument doc = PDDocument.load(fin)){
PDFRenderer pdfRenderer = new PDFRenderer((doc));
BufferedImage bim = pdfRenderer.renderImageWithDPI(0, 300, ImageType.RGB);
File myObj = new File("/path/to/sample.png");
FileOutputStream fos = new FileOutputStream(myObj);
ImageIOUtil.writeImage(bim, "png", fos);
fin.close();
fos.close();
} catch (IOException e) {
System.out.println("error");
}
它在我的 macOS 上運行良好(雖然圖片中的 fonts 與 pdf 中的不同),但是當我在 linux 服務器上運行時,中文字符丟失了。
源文件 PDF 可以在這里找到源文件。 我使用 adobe reader 檢測到字體,結果粘貼如下。
我該怎么做才能解決問題? 謝謝
感謝 Tilman Hausherr 的建議,我意識到當指定的 fonts 不可用時,“PDFBox 將嘗試找到一個接近的”。 我的問題是 PDFBox 未能找到足夠接近以識別 pdf 文件上的字體的字體。 在我上傳一些中文 fonts 到服務器后(對於 linux 操作系統,fonts 被復制到 /usr/share/fonts),問題解決了我使用的字體類型是我公司的,但我相信SimSun之類的fonts也可以,試試看吧。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.