In this article, I will show you how to print a PDF file with custom settings, such as silently print to a default printer and set the number of copies, show print dialog when printing, and print to a specific printer with custom paper size in Java using Free Spire.PDF for Java library.
Import Jar File
Download Free Spire.PDF for Java from this Link, you’ll find the jar file under the lib folder, add it into your project.
If your project is a maven project, refer this online tutorial to install Free Spire.PDF for Java into your project.
Print PDF File Silently with Default Printer
import com.spire.pdf.*;
import java.awt.print.*;
public class Print {
public static void main(String[] args) {
//load the sample document
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("Sample.pdf");
PrinterJob loPrinterJob = PrinterJob.getPrinterJob();
PageFormat loPageFormat = loPrinterJob.defaultPage();
Paper loPaper = loPageFormat.getPaper();
loPaper.setImageableArea(0,0,loPageFormat.getWidth(),loPageFormat.getHeight());
//set the number of copies
loPrinterJob.setCopies(2);
loPageFormat.setPaper(loPaper);
loPrinterJob.setPrintable(pdf,loPageFormat);
try {
//Print with default printer
loPrinterJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
Print PDF File with Print Dialog
import com.spire.pdf.*;
import java.awt.print.*;
public class Print {
public static void main(String[] args) {
//load the sample document
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("Sample.pdf");
PrinterJob loPrinterJob = PrinterJob.getPrinterJob();
PageFormat loPageFormat = loPrinterJob.defaultPage();
Paper loPaper = loPageFormat.getPaper();
loPaper.setImageableArea(0,0,loPageFormat.getWidth(),loPageFormat.getHeight());
loPageFormat.setPaper(loPaper);
loPrinterJob.setPrintable(pdf,loPageFormat);
//show the print dialog
if (loPrinterJob.printDialog()) {
try {
loPrinterJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
}
Print PDF file with Specific Printer
import com.spire.pdf.PdfDocument;
import javax.print.PrintService;
import java.awt.print.*;
public class PrintPDF {
public static void main(String[] args) throws PrinterException {
// load the sample document
PdfDocument loDoc = new PdfDocument();
pdf.loadFromFile("Sample.pdf");
PrinterJob loPrinterJob = PrinterJob.getPrinterJob();
PageFormat loPageFormat = loPrinterJob.defaultPage();
Paper loPaper = loPageFormat.getPaper();
//custom paper size
loPaper.setSize(500,600);
loPageFormat.setPaper(loPaper);
loPrinterJob.setPrintable(loDoc,loPageFormat);
//set printer
String printerName ="\\\\192.168.1.104\\HP LaserJet P1007";
PrintService[] pservices = PrinterJob.lookupPrintServices();
if (pservices.length > 0) {
for (PrintService ps : pservices) {
if (ps.getName().contains(printerName)) {
try {
loPrinterJob.setPrintService(ps);
break;
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
}
try {
//print
loPrinterJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
}
Comments
Post a Comment