public class PdfAStamper extends PdfStamper
PdfStamper 
       hasSignature, sigApp, sigXmlApp, stamper| Constructor and Description | 
|---|
PdfAStamper(PdfReader reader, OutputStream os, char pdfVersion, boolean append, PdfAConformanceLevel conformanceLevel) 
            
              Starts the process of adding extra content to an existing PDF document keeping the document PDF/A conformant. 
               |  
          
PdfAStamper(PdfReader reader, OutputStream os, char pdfVersion, PdfAConformanceLevel conformanceLevel) 
            
              Starts the process of adding extra content to an existing PDF document keeping the document PDF/A conformant. 
               |  
          
PdfAStamper(PdfReader reader, OutputStream os, PdfAConformanceLevel conformanceLevel) 
            
              Starts the process of adding extra content to an existing PDF document keeping the document PDF/A conformant. 
               |  
          
| Modifier and Type | Method and Description | 
|---|---|
static PdfAStamper |  
           createSignature(PdfReader reader, OutputStream os, char pdfVersion, File tempFile, boolean append, PdfAConformanceLevel conformanceLevel) 
            
              Applies a digital signature to a document, possibly as a new revision, making possible multiple signatures. 
               |  
          
static PdfAStamper |  
           createSignature(PdfReader reader, OutputStream os, char pdfVersion, File tempFile, PdfAConformanceLevel conformanceLevel) 
            
              Applies a digital signature to a document. 
               |  
          
static PdfAStamper |  
           createSignature(PdfReader reader, OutputStream os, char pdfVersion, PdfAConformanceLevel conformanceLevel) 
            
              Applies a digital signature to a document. 
               |  
          
addAnnotation, addComments, addFileAttachment, addFileAttachment, addJavaScript, addJavaScript, addNamedDestination, addSignature, addViewerPreference, close, createSignature, createSignature, createSignature, createXmlSignature, createXmpMetadata, flush, getAcroFields, getImportedPage, getLtvVerification, getMoreInfo, getOverContent, getPdfLayers, getReader, getSignatureAppearance, getUnderContent, getWriter, getXmlSignatureAppearance, getXmpWriter, insertPage, isFullCompression, isRotateContents, makePackage, makePackage, markUsed, partialFormFlattening, replacePage, setAnnotationFlattening, setDuration, setEncryption, setEncryption, setEncryption, setEncryption, setEncryption, setFormFlattening, setFreeTextFlattening, setFullCompression, setMoreInfo, setOutlines, setPageAction, setRotateContents, setThumbnail, setTransition, setViewerPreferences, setXmpMetadatapublic PdfAStamper(PdfReader reader, OutputStream os, PdfAConformanceLevel conformanceLevel) throws DocumentException, IOException
reader - the original document. It cannot be reused 
           os - the output stream 
           conformanceLevel - PDF/A conformance level of a new PDF document 
           DocumentException - on error 
           IOException - or error 
           public PdfAStamper(PdfReader reader, OutputStream os, char pdfVersion, PdfAConformanceLevel conformanceLevel) throws DocumentException, IOException
reader - the original document. It cannot be reused 
           os - the output stream 
           pdfVersion - the new pdf version or '\0' to keep the same version as the original document 
           conformanceLevel - PDF/A conformance level of a new PDF document 
           DocumentException - on error 
           IOException - or error 
           public PdfAStamper(PdfReader reader, OutputStream os, char pdfVersion, boolean append, PdfAConformanceLevel conformanceLevel) throws DocumentException, IOException
reader - the original document. It cannot be reused 
           os - the output stream 
           pdfVersion - the new pdf version or '\0' to keep the same version as the original document 
           append - if true appends the document changes as a new revision. This is only useful for multiple signatures as nothing is gained in speed or memory 
           conformanceLevel - PDF/A conformance level of a new PDF document 
           DocumentException - on error 
           IOException - or error 
           public static PdfAStamper createSignature(PdfReader reader, OutputStream os, char pdfVersion, File tempFile, boolean append, PdfAConformanceLevel conformanceLevel) throws DocumentException, IOException
A possible use for adding a signature without invalidating an existing one is:
 KeyStore ks = KeyStore.getInstance("pkcs12");
 ks.load(new FileInputStream("my_private_key.pfx"), "my_password".toCharArray());
 String alias = (String)ks.aliases().nextElement();
 PrivateKey key = (PrivateKey)ks.getKey(alias, "my_password".toCharArray());
 Certificate[] chain = ks.getCertificateChain(alias);
 PdfReader reader = new PdfReader("original.pdf");
 FileOutputStream fout = new FileOutputStream("signed.pdf");
 PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0', new
 File("/temp"), true);
 PdfSignatureAppearance sap = stp.getSignatureAppearance();
 sap.setCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);
 sap.setReason("I'm the author");
 sap.setLocation("Lisbon");
 // comment next line to have an invisible signature
 sap.setVisibleSignature(new Rectangle(100, 100, 200, 200), 1, null);
 stp.close();
  
          reader - the original document 
           os - the output stream or null to keep the document in the temporary file 
           pdfVersion - the new pdf version or '\0' to keep the same version as the original document 
           tempFile - location of the temporary file. If it's a directory a temporary file will be created there. If it's a file it will be used directly. The file will be deleted on exit unless os is null. In that case the document can be retrieved directly from the temporary file. If it's null no temporary file will be created and memory will be used 
           append - if true the signature and all the other content will be added as a new revision thus not invalidating existing signatures 
           conformanceLevel - PDF/A conformance level of a new PDF document 
           PdfAStamper 
           DocumentException - on error 
           IOException - on error 
           public static PdfAStamper createSignature(PdfReader reader, OutputStream os, char pdfVersion, PdfAConformanceLevel conformanceLevel) throws DocumentException, IOException
Note that the pdf is created in memory.
A possible use is:
 KeyStore ks = KeyStore.getInstance("pkcs12");
 ks.load(new FileInputStream("my_private_key.pfx"), "my_password".toCharArray());
 String alias = (String)ks.aliases().nextElement();
 PrivateKey key = (PrivateKey)ks.getKey(alias, "my_password".toCharArray());
 Certificate[] chain = ks.getCertificateChain(alias);
 PdfReader reader = new PdfReader("original.pdf");
 FileOutputStream fout = new FileOutputStream("signed.pdf");
 PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0');
 PdfSignatureAppearance sap = stp.getSignatureAppearance();
 sap.setCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);
 sap.setReason("I'm the author");
 sap.setLocation("Lisbon");
 // comment next line to have an invisible signature
 sap.setVisibleSignature(new Rectangle(100, 100, 200, 200), 1, null);
 stp.close();
  
          reader - the original document 
           os - the output stream 
           pdfVersion - the new pdf version or '\0' to keep the same version as the original document 
           conformanceLevel - PDF/A conformance level of a new PDF document 
           PdfAStamper 
           DocumentException - on error 
           IOException - on error 
           public static PdfAStamper createSignature(PdfReader reader, OutputStream os, char pdfVersion, File tempFile, PdfAConformanceLevel conformanceLevel) throws DocumentException, IOException
A possible use is:
 KeyStore ks = KeyStore.getInstance("pkcs12");
 ks.load(new FileInputStream("my_private_key.pfx"), "my_password".toCharArray());
 String alias = (String)ks.aliases().nextElement();
 PrivateKey key = (PrivateKey)ks.getKey(alias, "my_password".toCharArray());
 Certificate[] chain = ks.getCertificateChain(alias);
 PdfReader reader = new PdfReader("original.pdf");
 FileOutputStream fout = new FileOutputStream("signed.pdf");
 PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0', new File("/temp"));
 PdfSignatureAppearance sap = stp.getSignatureAppearance();
 sap.setCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);
 sap.setReason("I'm the author");
 sap.setLocation("Lisbon");
 // comment next line to have an invisible signature
 sap.setVisibleSignature(new Rectangle(100, 100, 200, 200), 1, null);
 stp.close();
  
          reader - the original document 
           os - the output stream or null to keep the document in the temporary file 
           pdfVersion - the new pdf version or '\0' to keep the same version as the original document 
           tempFile - location of the temporary file. If it's a directory a temporary file will be created there. If it's a file it will be used directly. The file will be deleted on exit unless os is null. In that case the document can be retrieved directly from the temporary file. If it's null no temporary file will be created and memory will be used 
           conformanceLevel - PDF/A conformance level of a new PDF document 
           PdfAStamper 
           DocumentException - on error 
           IOException - on error 
           Copyright © 1998–2019. All rights reserved.