When saving Excel worksheets to a PDF document using the PDF rendering extension methods introduced in OfficeWriter 10.0, it is often useful to be able to specify details about the resulting PDF document, or about how the rendering should behave. This is achieved by setting properties on the worksheet’s PageSetup property before calling the SavePdf method. This tutorial will walk through that process.
Setting up your worksheet
For this example, we will open an existing workbook, in order to save the first worksheet of the workbook to a PDF document:
ExcelApplication xla = new ExcelApplication();
Workbook WB = xla.Open(“input.xlsx”);
Worksheet worksheetToSave = WB[0];
Specifying page properties
Using the worksheet’s PageSetup property, we can specify the page size, orientation, and margins. These properties will be reflected in the final PDF document:
worksheetToSave.PageSetup.PaperSize = PageSetup.PagePaperSize.Legal;
worksheetToSave.PageSetup.Orientation = PageSetup.PageOrientation.Landscape;
worksheetToSave.PageSetup.TopMargin = 1.5; // Specified in inches
Setting a header and footer
The PageSetup property can also be used to set a header or footer. The header and footer will be printed on each page of the PDF:
HeaderFooterSection.Section hfSection = HeaderFooterSection.Section.Center;
worksheetToSave.PageSetup.GetHeader(hfSection).SetContent(“Header text”);
Specifying rendering options
Other PageSetup properties are useful for specifying how the content should be rendered to the PDF document. For example, we can make the content smaller than normal by using the Zoom property, specify the order in which pages should appear in the PDF document, and print all of the cell comments at the end of the document by setting the relevant properties on the worksheet:
worksheetToSave.PageSetup.Zoom = 50; // Specified as a percentage
worksheetToSave.PageSetup.UseZoom = true;
worksheetToSave.PageSetup.PrintOrder = PageSetup.PagePrintOrder.DownThenOver;
worksheetToSave.PageSetup.PrintComments = true;
worksheetToSave.PageSetup.PrintCommentsAtEnd = true;
There are additional PageSetup properties that may prove useful; for a complete list, see the PageSetup documentation.
Saving the PDF document
Once you have set all desired PageSetup options, you can then save the worksheet to a PDF document:
worksheetToSave.SavePdf(“output.pdf”);
If you want to save multiple PDF documents from the same workbook, but with different options set, you can repeat this process. For example, after saving one PDF document, you could then change the PaperSize property to a different size of paper, and then save a second document. The updated properties will be reflected in any subsequent calls to SavePdf.
When saving an entire workbook to a PDF, each worksheet is rendered using its own PageSetup properties.