List of usage examples for com.itextpdf.text Rectangle getTop
public float getTop()
From source file:at.laborg.briss.CropManager.java
License:Open Source License
private static void cropMultipliedFile(File source, CropJob cropJob) throws FileNotFoundException, DocumentException, IOException { PdfReader reader = new PdfReader(source.getAbsolutePath()); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(cropJob.getDestinationFile())); stamper.setMoreInfo(cropJob.getSourceMetaInfo()); PdfDictionary pageDict;/*from www . j a v a 2 s .c o m*/ int newPageNumber = 1; for (int origPageNumber = 1; origPageNumber <= cropJob.getSourcePageCount(); origPageNumber++) { SingleCluster cluster = cropJob.getClusterCollection().getSingleCluster(origPageNumber); // if no crop was selected do nothing if (cluster.getRatiosList().size() == 0) { newPageNumber++; continue; } for (Float[] ratios : cluster.getRatiosList()) { pageDict = reader.getPageN(newPageNumber); List<Rectangle> boxes = new ArrayList<Rectangle>(); boxes.add(reader.getBoxSize(newPageNumber, "media")); boxes.add(reader.getBoxSize(newPageNumber, "crop")); int rotation = reader.getPageRotation(newPageNumber); Rectangle scaledBox = calculateScaledRectangle(boxes, ratios, rotation); PdfArray scaleBoxArray = new PdfArray(); scaleBoxArray.add(new PdfNumber(scaledBox.getLeft())); scaleBoxArray.add(new PdfNumber(scaledBox.getBottom())); scaleBoxArray.add(new PdfNumber(scaledBox.getRight())); scaleBoxArray.add(new PdfNumber(scaledBox.getTop())); pageDict.put(PdfName.CROPBOX, scaleBoxArray); pageDict.put(PdfName.MEDIABOX, scaleBoxArray); // increment the pagenumber newPageNumber++; } int[] range = new int[2]; range[0] = newPageNumber - 1; range[1] = cropJob.getSourcePageCount() + (newPageNumber - origPageNumber); SimpleBookmark.shiftPageNumbers(cropJob.getSourceBookmarks(), cluster.getRatiosList().size() - 1, range); } stamper.setOutlines(cropJob.getSourceBookmarks()); stamper.close(); reader.close(); }
From source file:at.laborg.briss.utils.DocumentCropper.java
License:Open Source License
private static PdfArray createScaledBoxArray(final Rectangle scaledBox) { PdfArray scaleBoxArray = new PdfArray(); scaleBoxArray.add(new PdfNumber(scaledBox.getLeft())); scaleBoxArray.add(new PdfNumber(scaledBox.getBottom())); scaleBoxArray.add(new PdfNumber(scaledBox.getRight())); scaleBoxArray.add(new PdfNumber(scaledBox.getTop())); return scaleBoxArray; }
From source file:be.rheynaerde.pufmanager.gui.workers.ExportFullPdfWorker.java
License:Open Source License
private void addPdfToDocument(ByteArrayOutputStream baos, PdfCopy copy, String stampText) throws IOException, BadPdfFormatException { PdfReader reader = new PdfReader(new ByteArrayInputStream(baos.toByteArray())); int n = reader.getNumberOfPages(); for (int page = 1; page <= n; page++) { PdfImportedPage importedPage = copy.getImportedPage(reader, page); PdfCopy.PageStamp stamp = copy.createPageStamp(importedPage); Rectangle rectangle = importedPage.getBoundingBox(); ColumnText.showTextAligned(stamp.getUnderContent(), Element.ALIGN_RIGHT, new Phrase(stampText), rectangle.getRight() - 20f, rectangle.getTop() - 20f, 0); stamp.alterContents();/*from w w w. ja va2s.c om*/ copy.addPage(importedPage); } }
From source file:com.chaschev.itext.ColumnTextBuilder.java
License:Apache License
public Iterator<AtomicIncreaseResult> newAtomicIteratorFor(@Nullable Element element) { final Rectangle rect = getSimpleColumnRectangle(); final RectangleBuilder original = iTextBuilder.newRectangleBuilder(rect); rect.setBottom(rect.getTop()); setSimpleColumn(rect, true);/*from w w w .j a v a 2s . co m*/ return newAtomicIteratorFor(element, iTextBuilder.newRectangleBuilder(rect), original); }
From source file:com.chaschev.itext.RectangleBuilder.java
License:Apache License
public RectangleBuilder copyPositionsFrom(Rectangle other) { rectangle.setLeft(other.getLeft());//ww w .ja v a2 s . c om rectangle.setRight(other.getRight()); rectangle.setTop(other.getTop()); rectangle.setBottom(other.getBottom()); return this; }
From source file:com.dandymadeproductions.ajqvue.io.PDFDataTableDumpThread.java
License:Open Source License
public void run() { // Class Method Instances String title;//from ww w .j av a2s . c o m Font titleFont; Font rowHeaderFont; Font tableDataFont; BaseFont rowHeaderBaseFont; PdfPTable pdfTable; PdfPCell titleCell; PdfPCell rowHeaderCell; PdfPCell bodyCell; Document pdfDocument; PdfWriter pdfWriter; ByteArrayOutputStream byteArrayOutputStream; int columnCount, rowNumber; int[] columnWidths; int totalWidth; Rectangle pageSize; ProgressBar dumpProgressBar; HashMap<String, String> summaryListTableNameTypes; DataExportProperties pdfDataExportOptions; String currentTableFieldName; String currentType, currentString; // Setup columnCount = summaryListTable.getColumnCount(); rowNumber = summaryListTable.getRowCount(); columnWidths = new int[columnCount]; pdfTable = new PdfPTable(columnCount); pdfTable.setWidthPercentage(100); pdfTable.getDefaultCell().setPaddingBottom(4); pdfTable.getDefaultCell().setBorderWidth(1); summaryListTableNameTypes = new HashMap<String, String>(); pdfDataExportOptions = DBTablesPanel.getDataExportProperties(); titleFont = new Font(pdfDataExportOptions.getFont()); titleFont.setStyle(Font.BOLD); titleFont.setSize((float) pdfDataExportOptions.getTitleFontSize()); titleFont.setColor(new BaseColor(pdfDataExportOptions.getTitleColor().getRGB())); rowHeaderFont = new Font(pdfDataExportOptions.getFont()); rowHeaderFont.setStyle(Font.BOLD); rowHeaderFont.setSize((float) pdfDataExportOptions.getHeaderFontSize()); rowHeaderFont.setColor(new BaseColor(pdfDataExportOptions.getHeaderColor().getRGB())); rowHeaderBaseFont = rowHeaderFont.getCalculatedBaseFont(false); tableDataFont = pdfDataExportOptions.getFont(); // Constructing progress bar. dumpProgressBar = new ProgressBar(exportedTable + " Dump"); dumpProgressBar.setTaskLength(rowNumber); dumpProgressBar.pack(); dumpProgressBar.center(); dumpProgressBar.setVisible(true); // Create a Title if Optioned. title = pdfDataExportOptions.getTitle(); if (!title.equals("")) { if (title.equals("EXPORTED TABLE")) title = exportedTable; titleCell = new PdfPCell(new Phrase(title, titleFont)); titleCell.setBorder(0); titleCell.setPadding(10); titleCell.setColspan(summaryListTable.getColumnCount()); titleCell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER); pdfTable.addCell(titleCell); pdfTable.setHeaderRows(2); } else pdfTable.setHeaderRows(1); // Create Row Header. for (int i = 0; i < columnCount; i++) { currentTableFieldName = summaryListTable.getColumnName(i); rowHeaderCell = new PdfPCell(new Phrase(currentTableFieldName, rowHeaderFont)); rowHeaderCell.setBorderWidth(pdfDataExportOptions.getHeaderBorderSize()); rowHeaderCell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER); rowHeaderCell.setBorderColor(new BaseColor(pdfDataExportOptions.getHeaderBorderColor().getRGB())); pdfTable.addCell(rowHeaderCell); columnWidths[i] = Math.min(50000, Math.max(columnWidths[i], rowHeaderBaseFont.getWidth(currentTableFieldName + " "))); if (tableColumnTypeNameHashMap != null) summaryListTableNameTypes.put(Integer.toString(i), tableColumnTypeNameHashMap.get(currentTableFieldName)); else summaryListTableNameTypes.put(Integer.toString(i), "String"); } // Create the Body of Data. int i = 0; while ((i < rowNumber) && !dumpProgressBar.isCanceled()) { dumpProgressBar.setCurrentValue(i); // Collecting rows of data & formatting date & timestamps // as needed according to the Export Properties. if (summaryListTable.getValueAt(i, 0) != null) { for (int j = 0; j < summaryListTable.getColumnCount(); j++) { currentString = summaryListTable.getValueAt(i, j) + ""; currentString = currentString.replaceAll("\n", ""); currentString = currentString.replaceAll("\r", ""); currentType = summaryListTableNameTypes.get(Integer.toString(j)); // Format Date & Timestamp Fields as Needed. if ((currentType != null) && (currentType.equals("DATE") || currentType.equals("DATETIME") || currentType.indexOf("TIMESTAMP") != -1)) { if (!currentString.toLowerCase(Locale.ENGLISH).equals("null")) { int firstSpace; String time; // Dates fall through DateTime and Timestamps try // to get the time separated before formatting // the date. if (currentString.indexOf(" ") != -1) { firstSpace = currentString.indexOf(" "); time = currentString.substring(firstSpace); currentString = currentString.substring(0, firstSpace); } else time = ""; currentString = Utils.convertViewDateString_To_DBDateString(currentString, DBTablesPanel.getGeneralDBProperties().getViewDateFormat()); currentString = Utils.convertDBDateString_To_ViewDateString(currentString, pdfDataExportOptions.getPDFDateFormat()) + time; } } bodyCell = new PdfPCell(new Phrase(currentString, tableDataFont)); bodyCell.setPaddingBottom(4); if (currentType != null) { // Set Numeric Fields Alignment. if (currentType.indexOf("BIT") != -1 || currentType.indexOf("BOOL") != -1 || currentType.indexOf("NUM") != -1 || currentType.indexOf("INT") != -1 || currentType.indexOf("FLOAT") != -1 || currentType.indexOf("DOUBLE") != -1 || currentType.equals("REAL") || currentType.equals("DECIMAL") || currentType.indexOf("COUNTER") != -1 || currentType.equals("BYTE") || currentType.equals("CURRENCY")) { bodyCell.setHorizontalAlignment(pdfDataExportOptions.getNumberAlignment()); bodyCell.setPaddingRight(4); } // Set Date/Time Field Alignment. if (currentType.indexOf("DATE") != -1 || currentType.indexOf("TIME") != -1 || currentType.indexOf("YEAR") != -1) bodyCell.setHorizontalAlignment(pdfDataExportOptions.getDateAlignment()); } pdfTable.addCell(bodyCell); columnWidths[j] = Math.min(50000, Math.max(columnWidths[j], BASE_FONT.getWidth(currentString + " "))); } } i++; } dumpProgressBar.dispose(); // Check to see if any data was in the summary // table to even be saved. if (pdfTable.size() <= pdfTable.getHeaderRows()) return; // Create a document of the PDF formatted data // to be saved to the given output file. try { // Sizing & Layout totalWidth = 0; for (int width : columnWidths) totalWidth += width; if (pdfDataExportOptions.getPageLayout() == PDFExportPreferencesPanel.LAYOUT_PORTRAIT) pageSize = PageSize.A4; else { pageSize = PageSize.A4.rotate(); pageSize.setRight(pageSize.getRight() * Math.max(1f, totalWidth / 53000f)); pageSize.setTop(pageSize.getTop() * Math.max(1f, totalWidth / 53000f)); } pdfTable.setWidths(columnWidths); // Document pdfDocument = new Document(pageSize); byteArrayOutputStream = new ByteArrayOutputStream(); pdfWriter = PdfWriter.getInstance(pdfDocument, byteArrayOutputStream); pdfDocument.open(); pdfTemplate = pdfWriter.getDirectContent().createTemplate(100, 100); pdfTemplate.setBoundingBox(new com.itextpdf.text.Rectangle(-20, -20, 100, 100)); pdfWriter.setPageEvent(this); pdfDocument.add(pdfTable); pdfDocument.close(); // Outputting WriteDataFile.mainWriteDataString(fileName, byteArrayOutputStream.toByteArray(), false); } catch (DocumentException de) { if (Ajqvue.getDebug()) { System.out.println("Failed to Create Document Needed to Output Data. \n" + de.toString()); } } }
From source file:com.dandymadeproductions.myjsqlview.io.PDFDataTableDumpThread.java
License:Open Source License
public void run() { // Class Method Instances String title;/*from ww w . ja va 2 s . c om*/ PdfPTable pdfTable; PdfPCell titleCell, rowHeaderCell, bodyCell; Document pdfDocument; PdfWriter pdfWriter; ByteArrayOutputStream byteArrayOutputStream; int columnCount, rowNumber; int[] columnWidths; int totalWidth; Rectangle pageSize; MyJSQLView_ProgressBar dumpProgressBar; HashMap<String, String> summaryListTableNameTypes; String currentTableFieldName; String currentType, currentString; // Setup columnCount = summaryListTable.getColumnCount(); rowNumber = summaryListTable.getRowCount(); columnWidths = new int[columnCount]; pdfTable = new PdfPTable(columnCount); pdfTable.setWidthPercentage(100); pdfTable.getDefaultCell().setPaddingBottom(4); pdfTable.getDefaultCell().setBorderWidth(1); summaryListTableNameTypes = new HashMap<String, String>(); pdfDataExportOptions = DBTablesPanel.getDataExportProperties(); titleFont = new Font(pdfDataExportOptions.getFont()); titleFont.setStyle(Font.BOLD); titleFont.setSize((float) pdfDataExportOptions.getTitleFontSize()); titleFont.setColor(new BaseColor(pdfDataExportOptions.getTitleColor().getRGB())); rowHeaderFont = new Font(pdfDataExportOptions.getFont()); rowHeaderFont.setStyle(Font.BOLD); rowHeaderFont.setSize((float) pdfDataExportOptions.getHeaderFontSize()); rowHeaderFont.setColor(new BaseColor(pdfDataExportOptions.getHeaderColor().getRGB())); rowHeaderBaseFont = rowHeaderFont.getCalculatedBaseFont(false); tableDataFont = pdfDataExportOptions.getFont(); // Constructing progress bar. rowNumber = summaryListTable.getRowCount(); dumpProgressBar = new MyJSQLView_ProgressBar(exportedTable + " Dump"); dumpProgressBar.setTaskLength(rowNumber); dumpProgressBar.pack(); dumpProgressBar.center(); dumpProgressBar.setVisible(true); // Create a Title if Optioned. title = pdfDataExportOptions.getTitle(); if (!title.equals("")) { if (title.equals("EXPORTED TABLE")) title = exportedTable; titleCell = new PdfPCell(new Phrase(title, titleFont)); titleCell.setBorder(0); titleCell.setPadding(10); titleCell.setColspan(summaryListTable.getColumnCount()); titleCell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER); pdfTable.addCell(titleCell); pdfTable.setHeaderRows(2); } else pdfTable.setHeaderRows(1); // Create Row Header. for (int i = 0; i < columnCount; i++) { currentTableFieldName = summaryListTable.getColumnName(i); rowHeaderCell = new PdfPCell(new Phrase(currentTableFieldName, rowHeaderFont)); rowHeaderCell.setBorderWidth(pdfDataExportOptions.getHeaderBorderSize()); rowHeaderCell.setHorizontalAlignment(PdfPCell.ALIGN_CENTER); rowHeaderCell.setBorderColor(new BaseColor(pdfDataExportOptions.getHeaderBorderColor().getRGB())); pdfTable.addCell(rowHeaderCell); columnWidths[i] = Math.min(50000, Math.max(columnWidths[i], rowHeaderBaseFont.getWidth(currentTableFieldName + " "))); if (tableColumnTypeHashMap != null) summaryListTableNameTypes.put(Integer.toString(i), tableColumnTypeHashMap.get(currentTableFieldName)); else summaryListTableNameTypes.put(Integer.toString(i), "String"); } // Create the Body of Data. int i = 0; while ((i < rowNumber) && !dumpProgressBar.isCanceled()) { dumpProgressBar.setCurrentValue(i); // Collecting rows of data & formatting date & timestamps // as needed according to the Export Properties. if (summaryListTable.getValueAt(i, 0) != null) { for (int j = 0; j < summaryListTable.getColumnCount(); j++) { currentString = summaryListTable.getValueAt(i, j) + ""; currentString = currentString.replaceAll("\n", ""); currentString = currentString.replaceAll("\r", ""); currentType = summaryListTableNameTypes.get(Integer.toString(j)); // Format Date & Timestamp Fields as Needed. if ((currentType != null) && (currentType.equals("DATE") || currentType.equals("DATETIME") || currentType.indexOf("TIMESTAMP") != -1)) { if (!currentString.toLowerCase().equals("null")) { int firstSpace; String time; // Dates fall through DateTime and Timestamps try // to get the time separated before formatting // the date. if (currentString.indexOf(" ") != -1) { firstSpace = currentString.indexOf(" "); time = currentString.substring(firstSpace); currentString = currentString.substring(0, firstSpace); } else time = ""; currentString = MyJSQLView_Utils.convertViewDateString_To_DBDateString(currentString, DBTablesPanel.getGeneralDBProperties().getViewDateFormat()); currentString = MyJSQLView_Utils.convertDBDateString_To_ViewDateString(currentString, pdfDataExportOptions.getPDFDateFormat()) + time; } } bodyCell = new PdfPCell(new Phrase(currentString, tableDataFont)); bodyCell.setPaddingBottom(4); if (currentType != null) { // Set Numeric Fields Alignment. if (currentType.indexOf("BIT") != -1 || currentType.indexOf("BOOL") != -1 || currentType.indexOf("NUM") != -1 || currentType.indexOf("INT") != -1 || currentType.indexOf("FLOAT") != -1 || currentType.indexOf("DOUBLE") != -1 || currentType.equals("REAL") || currentType.equals("DECIMAL") || currentType.indexOf("COUNTER") != -1 || currentType.equals("BYTE") || currentType.equals("CURRENCY")) { bodyCell.setHorizontalAlignment(pdfDataExportOptions.getNumberAlignment()); bodyCell.setPaddingRight(4); } // Set Date/Time Field Alignment. if (currentType.indexOf("DATE") != -1 || currentType.indexOf("TIME") != -1 || currentType.indexOf("YEAR") != -1) bodyCell.setHorizontalAlignment(pdfDataExportOptions.getDateAlignment()); } pdfTable.addCell(bodyCell); columnWidths[j] = Math.min(50000, Math.max(columnWidths[j], BASE_FONT.getWidth(currentString + " "))); } } i++; } dumpProgressBar.dispose(); // Check to see if any data was in the summary // table to even be saved. if (pdfTable.size() <= pdfTable.getHeaderRows()) return; // Create a document of the PDF formatted data // to be saved to the given output file. try { // Sizing & Layout totalWidth = 0; for (int width : columnWidths) totalWidth += width; if (pdfDataExportOptions.getPageLayout() == PDFExportPreferencesPanel.LAYOUT_PORTRAIT) pageSize = PageSize.A4; else { pageSize = PageSize.A4.rotate(); pageSize.setRight(pageSize.getRight() * Math.max(1f, totalWidth / 53000f)); pageSize.setTop(pageSize.getTop() * Math.max(1f, totalWidth / 53000f)); } pdfTable.setWidths(columnWidths); // Document pdfDocument = new Document(pageSize); byteArrayOutputStream = new ByteArrayOutputStream(); pdfWriter = PdfWriter.getInstance(pdfDocument, byteArrayOutputStream); pdfDocument.open(); pdfTemplate = pdfWriter.getDirectContent().createTemplate(100, 100); pdfTemplate.setBoundingBox(new com.itextpdf.text.Rectangle(-20, -20, 100, 100)); pdfWriter.setPageEvent(this); pdfDocument.add(pdfTable); pdfDocument.close(); // Outputting WriteDataFile.mainWriteDataString(fileName, byteArrayOutputStream.toByteArray(), false); } catch (DocumentException de) { if (MyJSQLView.getDebug()) { System.out.println("Failed to Create Document Needed to Output Data. \n" + de.toString()); } } }
From source file:com.github.wolfposd.imsqti2pdf.HeaderFooter.java
License:Open Source License
@SuppressWarnings("unused") private void headerText(PdfWriter writer, Rectangle rect) { float center = (rect.getLeft() + rect.getRight()) / 2; ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase("Header Text"), center, rect.getTop(), 0); ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase("01.01.1970"), center, rect.getTop() - 16, 0); }
From source file:com.ots.jsp1.itext.ADAStamper.java
License:Open Source License
public void addADAAsWatermark(InputStream inStream, OutputStream outputStream, String ADA) throws DocumentException, IOException { PdfStamper stamper = null;// ww w .j a v a2s .co m PdfReader reader = null; try { reader = new PdfReader(inStream); //The zero byte means we dont want to change the version number of the PDF file. //true->not to change any of the original bytes stamper = new PdfStamper(reader, outputStream, '\0', true); int numberOfPages = reader.getNumberOfPages(); for (int currentPage = 1; currentPage <= numberOfPages; currentPage++) { PdfAppearance canvas = PdfAppearance.createAppearance(stamper.getWriter(), 100, 30); canvas.setFontAndSize( BaseFont.createFont(fontFilePath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED, true), 11); Rectangle pageSize = reader.getPageSizeWithRotation(currentPage); Rectangle watermarkPosition = new Rectangle(pageSize.getRight() - 150, pageSize.getTop() - 30, pageSize.getRight() - 50, pageSize.getTop() - 10, 0); PdfAnnotation annotation = PdfAnnotation.createFreeText(stamper.getWriter(), watermarkPosition, ADA, canvas); annotation.put(PdfName.F, new PdfNumber(PdfAnnotation.FLAGS_READONLY)); // annotation.put(PdfName.FONT, canvas); // PdfAnnotation annotation = PdfAnnotation.createText(stamper.getWriter(), watermarkPosition, "", ADA, true, "Key"); // PdfBorderDictionary borderDictionary = new PdfBorderDictionary(0, PdfBorderDictionary.STYLE_SOLID); annotation.setBorderStyle(borderDictionary); stamper.addAnnotation(annotation, currentPage); } } finally { stamper.close(); reader.close(); } }
From source file:com.planfeed.others.HeaderFooter.java
License:Apache License
public void onEndPage(PdfWriter writer, Document document) { Rectangle rect = writer.getBoxSize("art"); ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_RIGHT, header, rect.getRight(), rect.getTop(), 0); ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_CENTER, new Phrase(String.format("page %d", pagenumber)), (rect.getLeft() + rect.getRight()) / 2, rect.getBottom() - 18, 0);//from w w w . j a v a 2s .c om }