diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-04-01 16:50:03 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-04-01 16:51:50 +0200 |
commit | 4f1e143c6eac9e1b57b2400bf5b0761a8b072419 (patch) | |
tree | f06266246e8264bf56515a279853bd7197573fe2 /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PdfBoxStamper.java | |
parent | dce9a1535236da947d9f866421c4f0b8ae47e527 (diff) | |
download | pdf-as-4-4f1e143c6eac9e1b57b2400bf5b0761a8b072419.tar.gz pdf-as-4-4f1e143c6eac9e1b57b2400bf5b0761a8b072419.tar.bz2 pdf-as-4-4f1e143c6eac9e1b57b2400bf5b0761a8b072419.zip |
PDFBOX Table generation incl. QR Code detection and Positioning is done
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PdfBoxStamper.java')
-rw-r--r-- | pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PdfBoxStamper.java | 106 |
1 files changed, 3 insertions, 103 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PdfBoxStamper.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PdfBoxStamper.java index 559c8c9b..1bd4fed5 100644 --- a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PdfBoxStamper.java +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/impl/stamping/pdfbox/PdfBoxStamper.java @@ -1,13 +1,9 @@ package at.gv.egiz.pdfas.lib.impl.stamping.pdfbox; -import java.io.InputStream; +import java.io.IOException; -import org.apache.pdfbox.pdmodel.PDPage; -import org.apache.pdfbox.pdmodel.common.PDRectangle; import org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDFTemplateBuilder; -import org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDFTemplateStructure; import org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDVisibleSigBuilder; -import org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible.PDVisibleSignDesigner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,109 +25,13 @@ public class PdfBoxStamper implements IPDFStamper { this.pdfBuilder = new PDVisibleSigBuilder(); } - /* - private InputStream renderTable(Table abstractTable) throws PdfAsException - { - logger.info("pdf building has been started"); - PDFTemplateStructure pdfStructure = pdfBuilder.getStructure(); - //pdfStructure.setIm - // we create array of [Text, ImageB, ImageC, ImageI] - this.pdfBuilder.createProcSetArray(); - - //create page - this.pdfBuilder.createPage(properties); - PDPage page = pdfStructure.getPage(); - - //create template - this.pdfBuilder.createTemplate(page); - PDDocument template = pdfStructure.getTemplate(); - - //create /AcroForm - this.pdfBuilder.createAcroForm(template); - PDAcroForm acroForm = pdfStructure.getAcroForm(); - - // AcroForm contains singature fields - this.pdfBuilder.createSignatureField(acroForm); - PDSignatureField pdSignatureField = pdfStructure.getSignatureField(); - - // create signature - this.pdfBuilder.createSignature(pdSignatureField, page, properties.getSignatureFieldName()); - - // that is /AcroForm/DR entry - this.pdfBuilder.createAcroFormDictionary(acroForm, pdSignatureField); - - // create AffineTransform - this.pdfBuilder.createAffineTransform(properties.getAffineTransformParams()); - AffineTransform transform = pdfStructure.getAffineTransform(); - - // rectangle, formatter, image. /AcroForm/DR/XObject contains that form - this.pdfBuilder.createSignatureRectangle(pdSignatureField, properties); - this.pdfBuilder.createFormaterRectangle(properties.getFormaterRectangleParams()); - PDRectangle formater = pdfStructure.getFormaterRectangle(); - this.pdfBuilder.createSignatureImage(template, properties.getImage()); - - // create form stream, form and resource. - this.pdfBuilder.createHolderFormStream(template); - PDStream holderFormStream = pdfStructure.getHolderFormStream(); - this.pdfBuilder.createHolderFormResources(); - PDResources holderFormResources = pdfStructure.getHolderFormResources(); - this.pdfBuilder.createHolderForm(holderFormResources, holderFormStream, formater); - - // that is /AP entry the appearance dictionary. - this.pdfBuilder.createAppearanceDictionary(pdfStructure.getHolderForm(), pdSignatureField); - - // inner formstream, form and resource (hlder form containts inner form) - this.pdfBuilder.createInnerFormStream(template); - this.pdfBuilder.createInnerFormResource(); - PDResources innerFormResource = pdfStructure.getInnerFormResources(); - this.pdfBuilder.createInnerForm(innerFormResource, pdfStructure.getInnterFormStream(), formater); - PDFormXObject innerForm = pdfStructure.getInnerForm(); - - // inner form must be in the holder form as we wrote - this.pdfBuilder.insertInnerFormToHolerResources(innerForm, holderFormResources); - - // Image form is in this structure: /AcroForm/DR/FRM0/Resources/XObject/n0 - this.pdfBuilder.createImageFormStream(template); - PDStream imageFormStream = pdfStructure.getImageFormStream(); - this.pdfBuilder.createImageFormResources(); - PDResources imageFormResources = pdfStructure.getImageFormResources(); - this.pdfBuilder.createImageForm(imageFormResources, innerFormResource, imageFormStream, formater, transform, - pdfStructure.getImage()); - - // now inject procSetArray - this.pdfBuilder.injectProcSetArray(innerForm, page, innerFormResource, imageFormResources, holderFormResources, - pdfStructure.getProcSet()); - - String imgFormName = pdfStructure.getImageFormName(); - String imgName = pdfStructure.getImageName(); - String innerFormName = pdfStructure.getInnerFormName(); - - // now create Streams of AP - this.pdfBuilder.injectAppearanceStreams(holderFormStream, imageFormStream, imageFormStream, imgFormName, - imgName, innerFormName, properties); - this.pdfBuilder.createVisualSignature(template); - this.pdfBuilder.createWidgetDictionary(pdSignatureField, holderFormResources); - - ByteArrayInputStream in = pdfStructure.getTemplateAppearanceStream(); - logger.info("stream returning started, size= " + in.available()); - - // we must close the document - template.close(); - - // return result of the stream - return in; - } - */ - - public IPDFVisualObject createVisualPDFObject(PDFObject pdf, Table table) { - - return null; + public IPDFVisualObject createVisualPDFObject(PDFObject pdf, Table table) throws IOException { + return new PdfBoxVisualObject(table, pdf.getStatus().getSettings()); } public byte[] writeVisualObject(IPDFVisualObject visualObject, PositioningInstruction positioningInstruction, byte[] pdfData, String placeholderName) throws PdfAsException { - // TODO Auto-generated method stub return null; } |