Saving to PDF¶
The SaveAsPdf method is available on ExcelWorkbook, ExcelWorksheet and ExcelRangeBase. The layout is controlled by the printer settings of the worksheet, see Page setup.
Save a worksheet¶
To save a worksheet as a PDF, use the SaveAsPdf method on the worksheet.
You can adjust the PDF by setting options on the printer settings of the worksheet.
Save a range¶
To save a range as PDF, use the SaveAsPdf method on the range.
//Get the worksheet.
var worksheet = workbook.Worksheets[0];
//Set up the printer settings on the worksheet.
worksheet.PrinterSettings.PaperSize = ePaperSize.A4;
worksheet.PrinterSettings.ShowGridLines = true;
worksheet.PrinterSettings.ShowHeaders = true;
//Get the range to export.
var range = worksheet.Cells["A1:D42"];
//Save the range as PDF.
range.SaveAsPdf(outputFolder + "Sample 99.4.pdf");
'Get the worksheet.
Dim worksheet = workbook.Worksheets(0)
'Set up the printer settings on the worksheet.
worksheet.PrinterSettings.PaperSize = ePaperSize.A4
worksheet.PrinterSettings.ShowGridLines = True
worksheet.PrinterSettings.ShowHeaders = True
'Get the range to export.
Dim range = worksheet.Cells("A1:D42")
'Save the range as PDF.
range.SaveAsPdf(outputFolder & "Sample 99.4.pdf")
Save a workbook¶
To save a whole workbook as PDF, use the SaveAsPdf method on the workbook.
Printer settings for a workbook
When you save from the workbook, the printer settings of the first worksheet are currently used for the whole PDF. This will change in a future release.
//Get the workbook.
var workbook = package.Workbook;
//The printer settings of the first worksheet are used for the whole workbook.
workbook.Worksheets[0].PrinterSettings.PaperSize = ePaperSize.A3;
workbook.Worksheets[0].PrinterSettings.Orientation = eOrientation.Landscape;
//Save the workbook as PDF.
workbook.SaveAsPdf(outputFolder + "Sample 99.2.pdf");
'Get the workbook.
Dim workbook = package.Workbook
'The printer settings of the first worksheet are used for the whole workbook.
workbook.Worksheets(0).PrinterSettings.PaperSize = ePaperSize.A3
workbook.Worksheets(0).PrinterSettings.Orientation = eOrientation.Landscape
'Save the workbook as PDF.
workbook.SaveAsPdf(outputFolder & "Sample 99.2.pdf")
Save selected worksheets¶
Use the overload of SaveAsPdf on the workbook to select the worksheets to save to the PDF.
//Get the workbook.
var workbook = package.Workbook;
//Get the worksheets.
var worksheet1 = workbook.Worksheets[0];
var worksheet2 = workbook.Worksheets[1];
var worksheet3 = workbook.Worksheets[2];
//The printer settings of the first worksheet are used for the whole PDF.
workbook.Worksheets[0].PrinterSettings.PaperSize = ePaperSize.A4;
//worksheet1 and worksheet2 are saved to the same PDF. worksheet3 is excluded.
workbook.SaveAsPdf(outputFolder + "Sample 99.2.pdf", worksheet1, worksheet2);
'Get the workbook.
Dim workbook = package.Workbook
'Get the worksheets.
Dim worksheet1 = workbook.Worksheets(0)
Dim worksheet2 = workbook.Worksheets(1)
Dim worksheet3 = workbook.Worksheets(2)
'The printer settings of the first worksheet are used for the whole PDF.
workbook.Worksheets(0).PrinterSettings.PaperSize = ePaperSize.A4
'worksheet1 and worksheet2 are saved to the same PDF. worksheet3 is excluded.
workbook.SaveAsPdf(outputFolder & "Sample 99.2.pdf", worksheet1, worksheet2)
Save several ranges¶
Use the overload of SaveAsPdf on the workbook to save several ranges to the same PDF.
//Get the worksheet.
var worksheet = workbook.Worksheets[0];
//Set up the printer settings on the worksheet.
worksheet.PrinterSettings.PaperSize = ePaperSize.A4;
worksheet.PrinterSettings.ShowGridLines = true;
worksheet.PrinterSettings.ShowHeaders = true;
//Get the ranges from the worksheet.
var range1 = worksheet.Cells["F1:H4"];
var range2 = worksheet.Cells["J1:M45"];
//SaveAsPdf on the workbook accepts several ranges.
workbook.SaveAsPdf(outputFolder + "Sample 99.3.pdf", range1, range2);
'Get the worksheet.
Dim worksheet = workbook.Worksheets(0)
'Set up the printer settings on the worksheet.
worksheet.PrinterSettings.PaperSize = ePaperSize.A4
worksheet.PrinterSettings.ShowGridLines = True
worksheet.PrinterSettings.ShowHeaders = True
'Get the ranges from the worksheet.
Dim range1 = worksheet.Cells("F1:H4")
Dim range2 = worksheet.Cells("J1:M45")
'SaveAsPdf on the workbook accepts several ranges.
workbook.SaveAsPdf(outputFolder & "Sample 99.3.pdf", range1, range2)
Save asynchronously¶
Every SaveAsPdf method has an asynchronous version, SaveAsPdfAsync. The example below saves a worksheet.
Save to a stream¶
Use the Stream overloads of SaveAsPdf on the workbook, worksheet or range to write the PDF to a stream.
You can also write to a stream asynchronously.