Export to PDF"
From Documentation
(template) |
|||
Line 1: | Line 1: | ||
{{ZKSpreadsheetEssentialsPageHeader}} | {{ZKSpreadsheetEssentialsPageHeader}} | ||
− | + | ==Purpose== | |
+ | Export ZK Spreadsheet to PDF format | ||
+ | ==Exporter interface== | ||
+ | Exporting ZK Spreadsheet to another format is done through ''Exporter'' interface. It has three convenient methods to export ZK Spreadsheet contents. | ||
+ | :* Use Exporter#export(Book workbook, OutputStream outputStream) API to export entire workbook. | ||
+ | :* Use Exporter#export(Sheet worksheet, OutputStream outputStream); API to export specific worksheet. | ||
+ | :* Use Exporter#exportSelection(Sheet worksheet, AreaReference area, OutputStream outputStream) API to export partially selected area of workbook. | ||
+ | == PdfExporter== | ||
+ | ZK Spreadsheet has PDFExporter which is an Exporter implementation that allows ZK Spreadsheet contents to be exported to PDF format<ref>Available in zssex.jar</ref>. | ||
+ | To export ZK Spreadsheet to PDF format you could either instantiate a new PdfExporter instance or reuse earlier created one and invoke specific Exporter API method. | ||
+ | <source lang="xml"> | ||
+ | <window width="100" height="100%" apply="org.zkoss.zsspdf.demo.MySpreadsheetComposer"> | ||
+ | <vbox> | ||
+ | <button id="exportBtn" label="Export"></button> | ||
+ | <button id="exportSheetBtn" label="Export"></button> | ||
+ | <button id="exportCurrentSelectionBtn" label="Export"></button> | ||
+ | </vbox> | ||
+ | <spreadsheet id="spreadsheet" | ||
+ | src="/default.xls" | ||
+ | maxrows="200" | ||
+ | maxcolumns="40" | ||
+ | vflex="1" | ||
+ | width="100%"> | ||
+ | </spreadsheet> | ||
+ | </window> | ||
+ | </source> | ||
+ | In your composer | ||
+ | <source lang="java" high="10,11,18,28" start="7"> | ||
+ | public void onClick$exportBtn() throws IOException { | ||
+ | Book wb = spreadsheet.getBook(); | ||
+ | ByteArrayOutputStream baos = new ByteArrayOutputStream(); | ||
+ | Exporter c = new PdfExporter(); | ||
+ | c.export(wb, baos); | ||
+ | Filedownload.save(baos.toByteArray(),"application/pdf",wb.getBookName()); | ||
+ | } | ||
+ | public void onClick$exportSheetBtn() throws IOException { | ||
+ | Sheet sheet = spreadsheet.getSelectedSheet(); | ||
+ | Exporter c = new PdfExporter(); | ||
+ | ByteArrayOutputStream baos = new ByteArrayOutputStream(); | ||
+ | c.export(sheet, baos); | ||
+ | Filedownload.save(baos.toByteArray(),"application/pdf", spreadsheet.getBook().getBookName()); | ||
+ | } | ||
+ | public void onClick$exportCurrentSelectionBtn() throws IOException { | ||
+ | Sheet sheet = spreadsheet.getSelectedSheet(); | ||
+ | Exporter c = new PdfExporter(); | ||
+ | ByteArrayOutputStream baos = new ByteArrayOutputStream(); | ||
+ | Rect rect = spreadsheet.getSelection(); | ||
+ | String area = ss.getColumntitle(rect.getLeft()) + ss.getRowtitle(rect.getTop()) + ":" + | ||
+ | ss.getColumntitle(rect.getRight()) + ss.getRowtitle(rect.getBottom()); | ||
+ | c.exportSelection(sheet, new AreaReference(area), baos); | ||
+ | Filedownload.save(baos.toByteArray(),"application/pdf", spreadsheet.getBook().getBookName()); | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | <references/> | ||
{{ZKSpreadsheetEssentialsPageFooter}} | {{ZKSpreadsheetEssentialsPageFooter}} |
Revision as of 01:01, 8 November 2010
Purpose
Export ZK Spreadsheet to PDF format
Exporter interface
Exporting ZK Spreadsheet to another format is done through Exporter interface. It has three convenient methods to export ZK Spreadsheet contents.
- Use Exporter#export(Book workbook, OutputStream outputStream) API to export entire workbook.
- Use Exporter#export(Sheet worksheet, OutputStream outputStream); API to export specific worksheet.
- Use Exporter#exportSelection(Sheet worksheet, AreaReference area, OutputStream outputStream) API to export partially selected area of workbook.
PdfExporter
ZK Spreadsheet has PDFExporter which is an Exporter implementation that allows ZK Spreadsheet contents to be exported to PDF format[1]. To export ZK Spreadsheet to PDF format you could either instantiate a new PdfExporter instance or reuse earlier created one and invoke specific Exporter API method.
<window width="100" height="100%" apply="org.zkoss.zsspdf.demo.MySpreadsheetComposer">
<vbox>
<button id="exportBtn" label="Export"></button>
<button id="exportSheetBtn" label="Export"></button>
<button id="exportCurrentSelectionBtn" label="Export"></button>
</vbox>
<spreadsheet id="spreadsheet"
src="/default.xls"
maxrows="200"
maxcolumns="40"
vflex="1"
width="100%">
</spreadsheet>
</window>
In your composer
public void onClick$exportBtn() throws IOException {
Book wb = spreadsheet.getBook();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Exporter c = new PdfExporter();
c.export(wb, baos);
Filedownload.save(baos.toByteArray(),"application/pdf",wb.getBookName());
}
public void onClick$exportSheetBtn() throws IOException {
Sheet sheet = spreadsheet.getSelectedSheet();
Exporter c = new PdfExporter();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
c.export(sheet, baos);
Filedownload.save(baos.toByteArray(),"application/pdf", spreadsheet.getBook().getBookName());
}
public void onClick$exportCurrentSelectionBtn() throws IOException {
Sheet sheet = spreadsheet.getSelectedSheet();
Exporter c = new PdfExporter();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Rect rect = spreadsheet.getSelection();
String area = ss.getColumntitle(rect.getLeft()) + ss.getRowtitle(rect.getTop()) + ":" +
ss.getColumntitle(rect.getRight()) + ss.getRowtitle(rect.getBottom());
c.exportSelection(sheet, new AreaReference(area), baos);
Filedownload.save(baos.toByteArray(),"application/pdf", spreadsheet.getBook().getBookName());
}
- ↑ Available in zssex.jar
All source code listed in this book is at Github.