簡體   English   中英

PDFBox不打印文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM