📄 defaultpdfexportview.java
字号:
/** * Licensed under the Artistic License; you may not use this file * except in compliance with the License. * You may obtain a copy of the License at * * http://displaytag.sourceforge.net/license.html * * THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. */package org.displaytag.export;import java.io.IOException;import java.io.OutputStream;import com.lowagie.text.Document;import com.lowagie.text.DocumentException;import com.lowagie.text.pdf.BaseFont;import com.lowagie.text.pdf.PdfContentByte;import com.lowagie.text.pdf.PdfPTable;import com.lowagie.text.pdf.PdfPageEventHelper;import com.lowagie.text.pdf.PdfTemplate;import com.lowagie.text.pdf.PdfWriter;/** * PDF exporter using iText. * @author Jorge L. Barroso * @version $Revision$ ($Author$) */public class DefaultPdfExportView extends DefaultItextExportView{ /** * @see org.displaytag.export.BaseExportView#getMimeType() * @return "application/pdf" */ public String getMimeType() { return "application/pdf"; //$NON-NLS-1$ } /** * Initializes the PDF writer this export view uses to write the table document. * @param document The iText document to be written. * @param out The output stream to which the document is written. * @throws DocumentException If something goes wrong during initialization. */ protected void initItextWriter(Document document, OutputStream out) throws DocumentException { PdfWriter.getInstance(document, out).setPageEvent(new PageNumber()); } /** * Prints a page number at the bottom of each page. Based on * http://itextdocs.lowagie.com/examples/com/lowagie/examples/directcontent/pageevents/PageNumbersWatermark.java * @author Jorge L. Barroso * @version $Revision$ ($Author$) */ private static class PageNumber extends PdfPageEventHelper { /** * @see com.lowagie.text.pdf.PdfPageEventHelper#onEndPage(com.lowagie.text.pdf.PdfWriter, * com.lowagie.text.Document) */ public void onEndPage(PdfWriter writer, Document document) { /** The headertable. */ PdfPTable table = new PdfPTable(2); /** A template that will hold the total number of pages. */ PdfTemplate tpl = writer.getDirectContent().createTemplate(100, 100); /** The font that will be used. */ BaseFont helv = null; try { helv = BaseFont.createFont("Helvetica", BaseFont.WINANSI, false); } catch (DocumentException e) { } catch (IOException e) { } PdfContentByte cb = writer.getDirectContent(); cb.saveState(); // write the headertable table.setTotalWidth(document.right() - document.left()); table.writeSelectedRows(0, -1, document.left(), document.getPageSize().height() - 50, cb); // compose the footer String text = "Page " + writer.getPageNumber(); float textSize = helv.getWidthPoint(text, 12); float textBase = document.bottom() - 20; cb.beginText(); cb.setFontAndSize(helv, 12); float adjust = helv.getWidthPoint("0", 12); cb.setTextMatrix(document.right() - textSize - adjust, textBase); cb.showText(text); cb.endText(); cb.addTemplate(tpl, document.right() - adjust, textBase); cb.saveState(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -