2017-02-28 141 views
0

我已經進口PDFBOX-2.0.4.jarfontbox-2.0.4.jar共享記錄-1.1.1.jar到Eclipse開普勒。該程序運行在win10上。 控制檯打印大量此類警告pdfbox2.0.4將PDF轉換與中國爲PNG

org.apache.pdfbox.pdmodel.font.PDCIDFontType2 <init> 
WARNING: Using fallback font ArialUnicodeMS for CID-keyed TrueType font KaiTi_GB2312. 

我不能訪問與整個內容的圖像文件。我該如何解決它? 我的代碼是這樣的:

public class PdfboxTest { 
    private static final String filePath = "xxx"; 
    private static final String outputFilePath = "xxx"; 

    public static void change(File inputFile, File outputFolder) throws IOException { 

     String totalFileName = inputFile.getName(); 
     String fileName = totalFileName.substring(0,totalFileName.lastIndexOf(".")); 
     PDDocument doc = null; 
     try { 
      doc = PDDocument.load(inputFile); 
      PDFRenderer pdfRenderer = new PDFRenderer(doc); 
      int pageCounter = 0; 
      for(PDPage page : doc.getPages()) 
      { 
       BufferedImage bim = pdfRenderer.renderImageWithDPI(pageCounter, 300, ImageType.RGB); 
       ImageIOUtil.writeImage(bim, outputFilePath + "\\" + fileName + (pageCounter++) +".png", 300); 
      } 
      doc.close(); 

     } finally { 
      if (doc != null) { 
       doc.close(); 
      } 
     } 
    } 
    public static void main(String[] args) { 
     File inputFile = new File(filePath); 
     File outputFolder = new File(outputFilePath); 
     if(!outputFolder.exists()){ 
      outputFolder.mkdirs(); 
     } 
     try { 
      change(inputFile, outputFolder); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

    } 
} 
+1

嘗試安裝缺少的字體,例如'KaiTi_GB2312',這是來自沒有嵌入字體的PDF文件。 Re'我無法訪問整個內容的圖像文件'你是什麼意思,這是一個權限問題,還是你的意思是圖像中缺少中文文本? –

+0

感謝您的編輯建議和問題建議。我通過安裝字體KaiTi_GB2312解決了這個問題。現在我可以通過pdf獲得整個內容的圖像。 – dragic

回答

0

正如在評論中看到的 - 最好的解決辦法是安裝缺少的字體KaiTi_GB2312。信息Using fallback font意味着PDF引用了所提到的字體,並未嵌入它,但無法在您的計算機上找到它,所以PDFBox嘗試了一種備用解決方案,在這種情況下爲ArialUnicodeMS字體。令人遺憾的是,這種後備解決方案並不總是完美的,這就是爲什麼渲染圖像中有些字形丟失的原因。