Export to PDF"

From Documentation
(template)
 
Line 1: Line 1:
 
{{ZKSpreadsheetEssentialsPageHeader}}
 
{{ZKSpreadsheetEssentialsPageHeader}}
  
content here
+
==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());
	}
  1. Available in zssex.jar


All source code listed in this book is at Github.


Last Update : 2010/11/08

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.