Print (2)
The Excel print options (also known as sheet options) allow you to control the print options when printing Excel documents. Spire.XLS for Java offers the PageSetup class to set the print options, such as print area, print titles and print order. This article will demonstrate how to set different printing settings using Spire.XLS for Java from the following aspects:
- Set the print area in Excel
- Print titles in Excel
- Print gridlines in Excel
- Print comments in Excel
- Print Excel in black and white mode
- Set print quality
- Set the print order of worksheet pages
Install Spire.XLS for Java
First, you're required to add the Spire.Xls.jar file as a dependency in your Java program. The JAR file can be downloaded from this link. If you use Maven, you can easily import the JAR file in your application by adding the following code to your project's pom.xml file.
<repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.xls</artifactId> <version>14.4.1</version> </dependency> </dependencies>
Setting Excel Print Options via Page Setup
The detailed steps of controlling the Excel printing settings are as follows.
- Create a Workbook object.
- Load a sample Excel document using Workbook.loadFromFile() method.
- Get a specified worksheet using Workbook.getWorksheets().get() method.
- Get the PageSetup object of the first worksheet.
- Select a specific print area of a worksheet using PageSetup.setPrintArea() method.
- Set the rows to repeat at top when printing using PageSetup.setPrintTitleRows() method.
- Set printing with gridlines using PageSetup.isPrintGridlines(true) method.
- Set printing with comments using PageSetup.setPrintComments() method.
- Print worksheet in black & white mode using PageSetup.setBlackAndWhite(true) method.
- Set the printing quality using PageSetup.setPrintQuality() method.
- Set the printing order using PageSetup.setOrder() method.
- Save the document to another file using Workbook.saveToFile() method.
- Java
import com.spire.xls.*; public class pageSetupForPrinting { public static void main(String[] args) throws Exception { //Create a workbook Workbook workbook = new Workbook(); //Load the Excel document from disk workbook.loadFromFile("Sample.xlsx"); //Get the first worksheet Worksheet worksheet = workbook.getWorksheets().get(0); //Get the PageSetup object of the first worksheet PageSetup pageSetup = worksheet.getPageSetup(); //Specifying the print area pageSetup.setPrintArea("A1:D10"); //Define row numbers 1 as title rows pageSetup.setPrintTitleRows("$1:$2"); //Allow to print with row/column headings pageSetup.isPrintHeadings(true); //Allow to print with gridlines pageSetup.isPrintGridlines(true); //Allow to print comments as displayed on worksheet pageSetup.setPrintComments(PrintCommentType.InPlace); //Set printing quality pageSetup.setPrintQuality(150); //Allow to print worksheet in black & white mode pageSetup.setBlackAndWhite(true); //Set the printing order pageSetup.setOrder(OrderType.OverThenDown); //Save the document to file workbook.saveToFile("PagePrintOptions.xlsx", ExcelVersion.Version2016); } }
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.
Sometimes, you may find that a well-formatted and organized sheet looks messy on a printed page. This is because Excel worksheets are designed for comfortable viewing and editing on screen, not to fit on a sheet of paper. To get perfect hard copies of your Excel documents, you'll need to configure the print settings. In this article, you will learn how to set Excel print options and how to send Excel documents to a specified printer in Java using Spire.XLS for Java.
- Set Excel Print Options via Page Setup in Java
- Specify Printer Settings when Printing Excel Documents in Java
Install Spire.XLS for Java
First of all, you're required to add the Spire.Xls.jar file as a dependency in your Java program. The JAR file can be downloaded from this link. If you use Maven, you can easily import the JAR file in your application by adding the following code to your project's pom.xml file.
<repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.xls</artifactId> <version>14.4.1</version> </dependency> </dependencies>
Set Excel Print Options via Page Setup in Java
Excel Page Setup provides options to control how a worksheet will be printed, such as whether to print comments, whether to print gridlines and whether to fit worksheet on one page.
Spire.XLS offers the PageSetup object to deal with all these things. The following are the steps to set Excel print options through PageSetup using Spire.XLS for Java.
- Create a Workbook object.
- Load an Excel file using Workbook.loadFromFile() method.
- Get a specific worksheet using Workbook.getWorksheets().get() method.
- Get PageSetup object using Worksheet.getPageSetup() method.
- Set page margins, print area, pint title row, print quality, etc. using the methods under PageSetup object.
- Print the workbook by using PrinterJob class.
- Java
import com.spire.xls.*; import java.awt.print.PageFormat; import java.awt.print.Paper; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; public class SetPrintOptions { public static void main(String[] args) { //Create a workbook Workbook workbook = new Workbook(); //Load an Excel document workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\sample.xlsx"); //Get the first worksheet Worksheet worksheet = workbook.getWorksheets().get(0); //Get the PageSetup object of the first worksheet PageSetup pageSetup = worksheet.getPageSetup(); //Set page margins pageSetup.setTopMargin(0.3); pageSetup.setBottomMargin(0.3); pageSetup.setLeftMargin(0.3); pageSetup.setRightMargin(0.3); //Specify print area pageSetup.setPrintArea("A1:D10"); //Specify title row pageSetup.setPrintTitleRows("$1:$2"); //Allow to print with row/column headings pageSetup.isPrintHeadings(true); //Allow to print with gridlines pageSetup.isPrintGridlines(true); //Allow to print comments as displayed on worksheet pageSetup.setPrintComments(PrintCommentType.InPlace); //Set printing quality (dpi) pageSetup.setPrintQuality(300); //Allow to print worksheet in black & white mode pageSetup.setBlackAndWhite(true); //Set the printing order pageSetup.setOrder(OrderType.OverThenDown); //Fit worksheet on one page pageSetup.isFitToPage(true); //Create a PrinterJob object PrinterJob printerJob = PrinterJob.getPrinterJob(); PageFormat pageFormat = printerJob.defaultPage(); Paper paper = pageFormat.getPaper(); //Set the imageable area of this paper paper.setImageableArea(0, 0, pageFormat.getWidth(), pageFormat.getHeight()); //Set the number of copies printerJob.setCopies(1); pageFormat.setPaper(paper); //Call painter to render the workbook in the specified format printerJob.setPrintable(workbook, pageFormat); //Execute print try { printerJob.print(); } catch (PrinterException e) { e.printStackTrace(); } } }
Specify Printer Settings when Printing Excel Documents in Java
In addition to print options, it is important to know how to specify a network connected printer and how to specify other printer settings. The following steps demonstrate how to printer Excel documents with the specified printer settings by using Spire.XLS for Java and PrinterJob class.
- Create a Workbook object.
- Load an Excel file using Workbook.loadFromFile() method.
- Create a PrinterJob object using PrinterJob.getPrinterJob() method.
- Specify printer name using PrinterJob.setPrintService() method.
- Sets the number of copies to be printed using PrinterJob .setCopies() method.
- Calls painter to render the workbook using PrinterJob .setPrintable() method.
- Print the workbook using PrinterJob.print() method.
- Java
import com.spire.xls.Workbook; import javax.print.PrintService; import java.awt.print.PageFormat; import java.awt.print.Paper; import java.awt.print.PrinterException; import java.awt.print.PrinterJob; public class SpecifyPrinterSettings { public static void main(String[] args) throws PrinterException { //Create a Workbook object Workbook workbook = new Workbook(); //Load an Excel document workbook.loadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.xlsx"); //Create a PrinterJob object PrinterJob printerJob = PrinterJob.getPrinterJob(); //Specify printer name PrintService myPrintService = findPrintService("\\\\192.168.1.104\\HP LaserJet P1007"); printerJob.setPrintService(myPrintService); //Create a PageFormat object and set it to the default size and orientation PageFormat pageFormat = printerJob.defaultPage(); //Return a copy of the Paper object associated with this PageFormat. Paper paper = pageFormat .getPaper(); //Set the imageable area of this Paper paper.setImageableArea(0,0,pageFormat .getWidth(),pageFormat .getHeight()); //Set the Paper object for this PageFormat pageFormat .setPaper(paper); //Set the number of copies printerJob .setCopies(1); //Call painter to render the workbook in the specified format printerJob .setPrintable(workbook,pageFormat); //Execute print try { printerJob.print(); } catch (PrinterException e) { e.printStackTrace(); } } //Get print service by printer name private static PrintService findPrintService(String printerName) { PrintService[] printServices = PrinterJob.lookupPrintServices(); for (PrintService printService : printServices) { if (printService.getName().equals(printerName)) { return printService; } } return null; } }
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.