[英]PDFBox not printing text
我試圖打印使用docx4j生成的Word文檔,然后將其轉換為PDF並使用PDFBox打印。 我要打印的文檔僅包含一個帶有基本英文文本的簡單表格。
這是我使用的方法:
private void printDocument(){
PrinterJob job = PrinterJob.getPrinterJob();
try {
PDDocument document;
document = PDDocument.load("files\\textDocs\\OITScanSheet.pdf");
job.setPageable(new PDPageable(document, job));
job.setJobName("OIT Scan Sheet");
job.print();
} catch (NullPointerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (PrinterException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
這是我要打印的內容: 打印之前
這就是我打印時出現的情況(抱歉,質量很差): 打印后
該表是完整的,具有正確的行數,但是文本不存在。 當我從Adobe Reader打印文檔時,它會按原樣打印。
我現在正在使用PDFBox 2.0.0快照。 我從版本1.8.4切換到該版本,因為我遇到了這個問題, 該問題可以正確打印表格,但所有文本都是垃圾。
我可以肯定地說,這個問題與幕后的某種字體問題有關,但是我不知道如何解決它。 任何幫助將不勝感激。
如果您確實需要printDialog,這是准備使用的代碼,假設您的類路徑中有PDFBox 2.0和字體2.0
public static void PDFPrintingServices(String filePath) throws IOException, PrinterException {
PrintRequestAttributeSet attr_set = new HashPrintRequestAttributeSet();
attr_set.add(MediaSizeName.ISO_A4);
attr_set.add(Sides.ONE_SIDED);
PDDocument pdf = PDDocument.load(new File(filePath));
PDFPageable p = new PDFPageable(pdf);
PDFPrintable printable = new PDFPrintable(pdf, Scaling.SCALE_TO_FIT);
PrinterJob job = PrinterJob.getPrinterJob();
job.setJobName("My Printer");
job.setPageable(p);
job.setPrintable(printable);
if(job.printDialog()) {
job.print();
job.print(attr_set);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.