List of usage examples for com.lowagie.text.pdf PdfDestination FIT
int FIT
To view the source code for com.lowagie.text.pdf PdfDestination FIT.
Click Source Link
From source file:questions.importpages.ConcatenateWithTOC2.java
public static void main(String[] args) { try {// w w w. ja va2 s . co m // suppose we have some TEST PDF files for (int i = 0; i < TEST.length; i++) { createTestPdf(i); } // and we want to concatenate them Document document = new Document(); ByteArrayOutputStream os = new ByteArrayOutputStream(); PdfCopy copy = new PdfCopy(document, os); copy.setViewerPreferences(PdfWriter.PageModeUseOutlines); document.open(); // but we want to create an outline tree PdfOutline root = copy.getRootOutline(); // we also want an extra page with the file name Document coverpage; ByteArrayOutputStream baos; PdfReader reader; // we want keep track of the page numbers int pagenumber = 0; for (int i = 0; i < TEST.length; i++) { // we create the coverpage in memory coverpage = new Document(); baos = new ByteArrayOutputStream(); PdfWriter.getInstance(coverpage, baos); coverpage.open(); coverpage.add(new Paragraph("file: " + TEST[i])); coverpage.close(); // we import that page reader = new PdfReader(baos.toByteArray()); pagenumber++; copy.addPage(copy.getImportedPage(reader, 1)); // we create the bookmark to that page PdfDestination dest = new PdfDestination(PdfDestination.FIT); new PdfOutline(root, PdfAction.gotoLocalPage(pagenumber, dest, copy), TEST[i]); // we import the document itself reader = new PdfReader(TEST[i]); for (int j = 1; j <= reader.getNumberOfPages(); j++) { pagenumber++; copy.addPage(copy.getImportedPage(reader, j)); } } document.close(); // we want to add page X of Y reader = new PdfReader(os.toByteArray()); int n = reader.getNumberOfPages(); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT)); BaseFont bf = BaseFont.createFont(); for (int i = 1; i <= n; i++) { PdfContentByte canvas = stamper.getOverContent(i); canvas.beginText(); canvas.setFontAndSize(bf, 12); canvas.showTextAligned(Element.ALIGN_LEFT, "page " + i + " of " + n, 36, 26, 0); canvas.endText(); } stamper.close(); } catch (IOException ioe) { ioe.printStackTrace(); } catch (DocumentException de) { de.printStackTrace(); } }
From source file:webBoltOns.server.reportWriter.JRivetWriter.java
License:Open Source License
/** * <h2><code>buildReport</code></h2> * //from w ww. j av a2s . c o m * <p> * Create the PDF report * </p> * * @param ServletRequest request - the HTTP request * @param ServletResponse response - the HTTP respones * */ private void buildReport(ServletRequest request, ServletResponse response, DataSet reportTable) { try { rowCount = 999; totalRows = 0; document = new Document(PageSize.LEGAL.rotate()); document.setMargins(8.0f, 8.0f, 8.0f, 18.0f); outputStream = new ByteArrayOutputStream(); writer = PdfWriter.getInstance(document, outputStream); writer.setViewerPreferences(PdfWriter.PageModeUseOutlines); buildReportTitles(reportTable); document.open(); contentByte = writer.getDirectContent(); root = new PdfOutline(contentByte.getRootOutline(), new PdfDestination(PdfDestination.FIT), "Report"); topA.setOutline(root); ResultSet resultSet; Statement statement = dataAccess.execConnectReadOnly(); sql = new StringBuffer(reportTable.getStringField(ReportColumn.SQL_QUERY)); sql = DataSet.removeFormat(sql, "\n"); sql = DataSet.removeFormat(sql, "\t"); Enumeration parameters = request.getParameterNames(); while (parameters.hasMoreElements()) { String p = (String) parameters.nextElement(); String v = request.getParameter(p); if (!p.equals("ReportScript") && !p.equals("") && !v.equals("")) sql = mergeTagValues(sql, p, v); } resultSet = statement.executeQuery(sql.toString().trim()); String[] record = new String[reportColumns.length]; while (resultSet.next()) { for (int c = 0; c < reportColumns.length; c++) { ReportColumn column = (ReportColumn) reportColumns[c]; String value = (String) DataAccess.getFieldValue(resultSet, column.getFeildName(), column.getDataType()); record[c] = formatField(value, column.getDataType(), column.getDecimals()); } topA.recursiveLevelBreaks(record); buildDetilLine(record); accumulateReportTotals(record); totalRows++; } if (totalRows == 0) { buildEmptyPage(request, response); } else { topA.fireGrandTotalBreak(); resultSet.close(); dataAccess.execClose(statement); document.add(reportBody); document.close(); buildPDFReportPage(request, response, outputStream.toByteArray()); } } catch (DocumentException e) { gs.log("** DocumentException: " + e); buildErrorPage(request, response, e.toString()); } catch (IOException e) { gs.log("** IOException: " + e); buildErrorPage(request, response, e.toString()); } catch (Exception e) { gs.log("** Exception: " + e); buildErrorPage(request, response, e.toString()); } }