Printing PDF files from Java is something that raises a lot of general questions, so this short article is a general guide to the options available. Java itself contains a built-in print system (JPS). JPS itself does not internally support the PDF file format.
There are 3 ways to print PDF files in Java:-
1. Use a printer which directly supports PDF files and use JPS to send the data directly to it.
All the work is done by the printer, often in hardware so this is a brilliant solution if you can precisely define the printers used but does not provide a generic solution. If you want to try this, here is some generic code
FileInputStream fis = new FileInputStream(“C:/mypdf.pdf”);
Doc pdfDoc = new SimpleDoc(fis, null, null);
DocPrintJob printJob = printService.createPrintJob();
printJob.print(pdfDoc, new HashPrintRequestAttributeSet());
2. Print from Java using a non-java application
Java allows you to access non-java code so that you can access Acrobat, Ghostscript, CUPS or any other solution. You can do this with the Java command
Again, this works if you have control of the exact platforms and software available but does not provide a generic solution.
3. Print using JPS
JPS does not include PDF support, but it does have hooks to allow any Java program to print content to any printer. A number of Java PDF libraries offer printing – including ours! They essentially convert the PDF into a rendered page which JPS then prints. This provides a generic solution but the files tend to be larger and it relies on the capabilities of the PDF library which vary.
This is the solution we use in our JPedal PDF library. There is a detailed 5 step tutorial showing how you can print (which will be relevant to any library using JPS at ), and more details about printing here.
All three methods have their pros and cons so try them to find out which one offers the best fit for your requirements. Try and see what meets your needs best. If you would like to see a more detailled article please let us know or post your comments here.
The JPedal Java PDF library is actively developed and can be used for printing, viewing, conversion, search, extraction and lots of other purposes. If you would like to learn more about the JPedal PDF Library click here.
This post is part of our “Printing Articles Index” in these articles, we aim to help you understand printing in Java and PDF’s.
Latest posts by Mark Stephens (see all)
- First impressions of the new RaspberryPi for Raspbian, Riscos, Java and NetBeans - March 3, 2015
- Converting a Swing application into JavaFX – Listeners and fast scrolling - February 3, 2015
- BCS talk by Liz Bacon and dinner at Greenwich - January 22, 2015
- Updating all your Fogbugz colleagues using a virtual user - January 15, 2015
- 5 reasons why JavaFX is better than Swing for developing a Java PDF viewer - January 6, 2015