diff options
Diffstat (limited to 'pdf-as-lib/src/test/java/at/gv')
-rw-r--r-- | pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/mains/TestPDFBoxTable.java | 224 |
1 files changed, 0 insertions, 224 deletions
diff --git a/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/mains/TestPDFBoxTable.java b/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/mains/TestPDFBoxTable.java deleted file mode 100644 index 4166198b..00000000 --- a/pdf-as-lib/src/test/java/at/gv/egiz/pdfas/lib/test/mains/TestPDFBoxTable.java +++ /dev/null @@ -1,224 +0,0 @@ -/******************************************************************************* - * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright> - * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a - * joint initiative of the Federal Chancellery Austria and Graz University of - * Technology. - * - * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by - * the European Commission - subsequent versions of the EUPL (the "Licence"); - * You may not use this work except in compliance with the Licence. - * You may obtain a copy of the Licence at: - * http://www.osor.eu/eupl/ - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the Licence is distributed on an "AS IS" basis, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the Licence for the specific language governing permissions and - * limitations under the Licence. - * - * This product combines work with different licenses. See the "NOTICE" text - * file for details on the various modules and licenses. - * The "NOTICE" text file is part of the distribution. Any derivative works - * that you distribute must include a readable copy of the "NOTICE" text file. - ******************************************************************************/ -package at.gv.egiz.pdfas.lib.test.mains; -import iaik.x509.X509Certificate; - -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; -import java.util.ArrayList; - -import org.apache.pdfbox.cos.COSName; -import org.apache.pdfbox.pdmodel.PDDocument; -import org.apache.pdfbox.pdmodel.PDPage; -import org.apache.pdfbox.pdmodel.common.PDRectangle; -import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; -import org.apache.pdfbox.pdmodel.font.PDType1Font; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import at.gv.egiz.pdfas.common.settings.ISettings; -import at.gv.egiz.pdfas.common.settings.SignatureProfileSettings; -import at.gv.egiz.pdfas.lib.api.PdfAs; -import at.gv.egiz.pdfas.lib.api.PdfAsFactory; -import at.gv.egiz.pdfas.lib.impl.stamping.TableFactory; -import at.knowcenter.wag.egov.egiz.table.Entry; -import at.knowcenter.wag.egov.egiz.table.Style; -import at.knowcenter.wag.egov.egiz.table.Table; - -public class TestPDFBoxTable { - - private static final Logger logger = LoggerFactory - .getLogger(TestPDFBoxTable.class); - - private static void drawTable(PDPage page, PDPageContentStream contentStream, - float x, float y, Table abstractTable) throws IOException { - - final int rows = abstractTable.getRows().size(); - final int cols = abstractTable.getMaxCols(); - float[] colsSizes = abstractTable.getColsRelativeWith(); - int max_cols = abstractTable.getMaxCols(); - if (colsSizes == null) - { - colsSizes = new float[max_cols]; - // set the column ratio for all columns to 1 - for (int cols_idx = 0; cols_idx < colsSizes.length; cols_idx++) - { - colsSizes[cols_idx] = 1; - } - } - - logger.info("TOTAL Col: " + abstractTable.getWidth()); - - float total = 0; - - for (int cols_idx = 0; cols_idx < colsSizes.length; cols_idx++) - { - total += colsSizes[cols_idx]; - } - - for (int cols_idx = 0; cols_idx < colsSizes.length; cols_idx++) - { - colsSizes[cols_idx] = (colsSizes[cols_idx]/total) * abstractTable.getWidth(); - } - - for (int cols_idx = 0; cols_idx < colsSizes.length; cols_idx++) - { - logger.info("Col: " + cols_idx + " : " + colsSizes[cols_idx]); - } - - final float cellMargin=5f; - final float rowHeight = 12f + 2 * cellMargin; - final float tableWidth = abstractTable.getWidth(); - final float tableHeight = rowHeight * rows; - final float colWidth = tableWidth/(float)cols; - - //draw the rows - float nexty = y ; - for (int i = 0; i <= rows; i++) { - contentStream.drawLine(x, nexty, x+tableWidth, nexty); - nexty-= rowHeight; - } - - //draw the columns - float nextx = x; - for (int i = 0; i <= cols; i++) { - contentStream.drawLine(nextx, y, nextx, y-tableHeight); - if(i < colsSizes.length) { - nextx += (colsSizes != null) ? colsSizes[i] : colWidth; - } - } - - float textx = x+cellMargin; - float texty = y-15; - for(int i = 0; i < abstractTable.getRows().size(); i++){ - ArrayList<Entry> row = abstractTable.getRows().get(i); - for(int j = 0 ; j < row.size(); j++) { - Entry cell = row.get(j); - String text = cell.toString(); - text = "Hallo"; - COSName name = COSName.getPDFName("ANDI_TAG!"); - contentStream.beginMarkedContentSequence(COSName.ALT, name); - contentStream.beginText(); - logger.info("Writing: " + textx + " : " + texty + " = " + text); - contentStream.moveTextPositionByAmount(textx,texty); - - if (text.contains("\n")) { - String[] lines = text.split("\n"); - contentStream.appendRawCommands(10 + " TL\n"); - for (int k = 0; k < lines.length; k++) { - contentStream.drawString(lines[k]); - if (k < lines.length - 1) { - contentStream.appendRawCommands("T*\n"); - } - } - } else { - contentStream.drawString(text); - } - contentStream.endText(); - contentStream.endMarkedContentSequence(); - textx += (colsSizes != null) ? colsSizes[j] : colWidth; - } - texty-= rowHeight; - textx = x+cellMargin; - } - } - - - private static void renderTable(Table abstractTable) { - - ArrayList<ArrayList<Entry>> rows = abstractTable.getRows(); - Style table_style = abstractTable.getStyle(); - for (int row_idx = 0; row_idx < rows.size(); row_idx++) - { - ArrayList<Entry> row = rows.get(row_idx); - logger.info("## Row:" + row_idx + " ## of table:" + abstractTable.getName()); - for (int entry_idx = 0; entry_idx < row.size(); entry_idx++) - { - Entry cell = row.get(entry_idx); - // 03.11.2010 changed by exthex - swapped the two params, was probably a bug - Style inherit_style = Style.doInherit(table_style, cell.getStyle()); - cell.setStyle(inherit_style); - logger.info(cell.toString()); - /*PdfPCell pdf_cell = renderCell(cell); - if (cell.getColSpan() > 1) - { - pdf_cell.setColspan(cell.getColSpan()); - } - if (cell.isNoWrap()) - { - pdf_cell.setNoWrap(true); - }*/ - // System.err.println("valign:" + pdf_cell.getVerticalAlignment() + " - // halign:" + - // pdf_cell.getHorizontalAlignment()); - //pdf_table.addCell(pdf_cell); - } - //pdf_table.completeRow(); - } - logger.info("render table:" + abstractTable.getName()); - } - - public static void main(String[] args) { - try { - PdfAs pdfAs = PdfAsFactory.createPdfAs(new File("/home/afitzek/.pdfas/")); - ISettings settings = (ISettings) pdfAs.getConfiguration(); - SignatureProfileSettings profileSettings = - TableFactory.createProfile("SIGNATURBLOCK_DE", settings); - - X509Certificate cert = new X509Certificate(new FileInputStream("/home/afitzek/qualified.cer")); - - CertificateHolderRequest request = new CertificateHolderRequest(cert); - /* - Table main = TableFactory.createSigTable(profileSettings, "main", settings, request); - - main.setWidth(400); - - renderTable(main); - */ -// PDStream stream1; - - PDDocument document = new PDDocument(); - PDPage page = new PDPage(); - page.setMediaBox(new PDRectangle()); - PDPageContentStream stream = new PDPageContentStream(document, page); - stream.setFont(PDType1Font.HELVETICA_BOLD , 12); - //drawTable(page, stream, 100, 300, main); - stream.close(); - - document.addPage(page); - - document.save("/tmp/test.pdf"); - - /* - FileOutputStream fos = new FileOutputStream("/tmp/buffer.bin"); - fos.write(page.getContents().getByteArray()); - fos.close(); - */ - - } catch(Throwable e) { - e.printStackTrace(); - } - } -} |