JavaFX application: printer cannot print file

Viewed 137

I am creating a PDF document in tDEST by itext library. Then I am cleaning trailing spaces in resize functions writing a new document to DEST. If I want to print tDest document, it works fine but if I try to print a DEST file, it does not print anything and does not throw any exception.

Here is my main class:

String DEST = System.getProperty("user.home") + "\\Documents\\invoice.pdf";
String tDEST = System.getProperty("user.home") + "\\Documents\\temp.pdf";

public static void main(String... args) {
    ....

    resize();

    PDDocument document = null;
    try {
        document = PDDocument.load(new File(DEST));
    } catch (IOException e) {
        e.printStackTrace();
    }

    PrinterJob job = PrinterJob.getPrinterJob();
    job.setPageable(new PDFPageable(document));

    try {
        PrintService myPrintService = findPrintService(Commons.printer.getName());
        job.setPrintService(myPrintService);
        job.print();
    } catch (Exception e) {
        e.printStackTrace();
        System.out.println("Printer ishlamayapti");
    }

    ....
}

public void resize() {
    try {
        FileOutputStream fileOutputStream = new FileOutputStream(DEST);
        PdfReader reader = new PdfReader(tDEST);
        com.itextpdf.text.Rectangle pageSize = reader.getPageSize(1);
        PdfStamper stamper = new PdfStamper(reader, fileOutputStream);
        PdfReaderContentParser parser = new PdfReaderContentParser(reader);
        TextMarginFinder finder = parser.processContent(1, new TextMarginFinder());

        PdfDictionary page = reader.getPageN(1);
        page.put(PdfName.CROPBOX, new PdfArray(new float[]{pageSize.getLeft(), finder.getLly(), pageSize.getRight(), pageSize.getTop()}));
        stamper.markUsed(page);

        stamper.flush();
        stamper.close();
        reader.close();

        fileOutputStream.close();
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}
0 Answers
Related