Class CreateVisibleSignature
- java.lang.Object
-
- org.apache.pdfbox.examples.signature.CreateSignatureBase
-
- org.apache.pdfbox.examples.signature.CreateVisibleSignature
-
- All Implemented Interfaces:
SignatureInterface
public class CreateVisibleSignature extends CreateSignatureBase
This is an example for visual signing a pdf.- See Also:
CreateSignature
-
-
Field Summary
Fields Modifier and Type Field Description private PDDocumentdocprivate booleanlateExternalSigningprivate SignatureOptionssignatureOptionsprivate RandomAccessStreamCache.StreamCacheCreateFunctionstreamCacheprivate PDVisibleSigPropertiesvisibleSignaturePropertiesprivate PDVisibleSignDesignervisibleSignDesigner
-
Constructor Summary
Constructors Constructor Description CreateVisibleSignature(java.security.KeyStore keystore, char[] pin)Initialize the signature creator with a keystore (pkcs12) and pin that should be used for the signature.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private PDSignaturefindExistingSignature(PDDocument doc, java.lang.String sigFieldName)RandomAccessStreamCache.StreamCacheCreateFunctiongetStreamCacheCreateFunction()Get the function to be used to create an instance of the choosen stream cache.booleanisLateExternalSigning()static voidmain(java.lang.String[] args)Arguments are [0] key store [1] pin [2] document that will be signed [3] image of visible signaturevoidsetLateExternalSigning(boolean lateExternalSigning)Set late external signing.voidsetStreamCacheCreateFunction(RandomAccessStreamCache.StreamCacheCreateFunction streamCache)Set the function to be used to create an instance of the choosen stream cache.voidsetVisibleSignatureProperties(java.lang.String name, java.lang.String location, java.lang.String reason, boolean visualSignEnabled)Set visible signature properties for existing signature fields.voidsetVisibleSignatureProperties(java.lang.String name, java.lang.String location, java.lang.String reason, int preferredSize, int page, boolean visualSignEnabled)Set visible signature properties for new signature fields.voidsetVisibleSignDesigner(int zoomPercent, java.io.InputStream imageStream)Set visible signature designer for an existing signature field.voidsetVisibleSignDesigner(java.lang.String filename, int x, int y, int zoomPercent, java.io.InputStream imageStream, int page)Open the PDF, create and set the visible signature designer for a new signature field.voidsignPDF(java.io.File inputFile, java.io.File signedFile, java.lang.String tsaUrl)Sign pdf file and create new file that ends with "_signed.pdf".voidsignPDF(java.io.File inputFile, java.io.File signedFile, java.lang.String tsaUrl, java.lang.String signatureFieldName)Sign pdf file and create new file that ends with "_signed.pdf".private static voidusage()This will print the usage for this program.-
Methods inherited from class org.apache.pdfbox.examples.signature.CreateSignatureBase
getCertificateChain, isExternalSigning, setCertificateChain, setExternalSigning, setPrivateKey, setTsaUrl, sign
-
-
-
-
Field Detail
-
signatureOptions
private SignatureOptions signatureOptions
-
visibleSignDesigner
private PDVisibleSignDesigner visibleSignDesigner
-
visibleSignatureProperties
private final PDVisibleSigProperties visibleSignatureProperties
-
lateExternalSigning
private boolean lateExternalSigning
-
streamCache
private RandomAccessStreamCache.StreamCacheCreateFunction streamCache
-
doc
private PDDocument doc
-
-
Constructor Detail
-
CreateVisibleSignature
public CreateVisibleSignature(java.security.KeyStore keystore, char[] pin) throws java.security.KeyStoreException, java.security.UnrecoverableKeyException, java.security.NoSuchAlgorithmException, java.io.IOException, java.security.cert.CertificateExceptionInitialize the signature creator with a keystore (pkcs12) and pin that should be used for the signature.- Parameters:
keystore- is a pkcs12 keystore.pin- is the pin for the keystore / private key- Throws:
java.security.KeyStoreException- if the keystore has not been initialized (loaded)java.security.NoSuchAlgorithmException- if the algorithm for recovering the key cannot be foundjava.security.UnrecoverableKeyException- if the given password is wrongjava.security.cert.CertificateException- if the certificate is not valid as signing timejava.io.IOException- if no certificate could be found
-
-
Method Detail
-
isLateExternalSigning
public boolean isLateExternalSigning()
-
setLateExternalSigning
public void setLateExternalSigning(boolean lateExternalSigning)
Set late external signing. Enable this if you want to activate the demo code where the signature is kept and added in an extra step without using PDFBox methods. This is disabled by default.- Parameters:
lateExternalSigning-
-
getStreamCacheCreateFunction
public RandomAccessStreamCache.StreamCacheCreateFunction getStreamCacheCreateFunction()
Get the function to be used to create an instance of the choosen stream cache.- Returns:
- the function to be used to create an instance of the choosen stream cache
-
setStreamCacheCreateFunction
public void setStreamCacheCreateFunction(RandomAccessStreamCache.StreamCacheCreateFunction streamCache)
Set the function to be used to create an instance of the choosen stream cache.- Parameters:
streamCache- the function to be used to create an instance of the choosen stream cache
-
setVisibleSignDesigner
public void setVisibleSignDesigner(java.lang.String filename, int x, int y, int zoomPercent, java.io.InputStream imageStream, int page) throws java.io.IOExceptionOpen the PDF, create and set the visible signature designer for a new signature field.- Parameters:
filename- path of the PDF filex- position of the signature fieldy- position of the signature fieldzoomPercent- increase (positive value) or decrease (negative value) image with x percent.imageStream- input stream of an image.page- the signature should be placed on (1-based)- Throws:
java.io.IOException
-
setVisibleSignDesigner
public void setVisibleSignDesigner(int zoomPercent, java.io.InputStream imageStream) throws java.io.IOExceptionSet visible signature designer for an existing signature field.- Parameters:
zoomPercent- increase (positive value) or decrease (negative value) image with x percent.imageStream- input stream of an image.- Throws:
java.io.IOException
-
setVisibleSignatureProperties
public void setVisibleSignatureProperties(java.lang.String name, java.lang.String location, java.lang.String reason, int preferredSize, int page, boolean visualSignEnabled)Set visible signature properties for new signature fields.- Parameters:
name-location-reason-preferredSize-page- the signature should be placed on (1-based)visualSignEnabled-
-
setVisibleSignatureProperties
public void setVisibleSignatureProperties(java.lang.String name, java.lang.String location, java.lang.String reason, boolean visualSignEnabled)Set visible signature properties for existing signature fields.- Parameters:
name-location-reason-visualSignEnabled-
-
signPDF
public void signPDF(java.io.File inputFile, java.io.File signedFile, java.lang.String tsaUrl) throws java.io.IOExceptionSign pdf file and create new file that ends with "_signed.pdf".- Parameters:
inputFile- The source pdf document file.signedFile- The file to be signed.tsaUrl- optional TSA url- Throws:
java.io.IOException
-
signPDF
public void signPDF(java.io.File inputFile, java.io.File signedFile, java.lang.String tsaUrl, java.lang.String signatureFieldName) throws java.io.IOExceptionSign pdf file and create new file that ends with "_signed.pdf".- Parameters:
inputFile- The source pdf document file. It will be opened if it hasn't been opened before insetVisibleSignDesigner(java.lang.String, int, int, int, java.io.InputStream, int).signedFile- The file to be signed.tsaUrl- optional TSA urlsignatureFieldName- optional name of an existing (unsigned) signature field- Throws:
java.io.IOException
-
findExistingSignature
private PDSignature findExistingSignature(PDDocument doc, java.lang.String sigFieldName)
-
main
public static void main(java.lang.String[] args) throws java.security.KeyStoreException, java.security.cert.CertificateException, java.io.IOException, java.security.NoSuchAlgorithmException, java.security.UnrecoverableKeyExceptionArguments are [0] key store [1] pin [2] document that will be signed [3] image of visible signature- Parameters:
args-- Throws:
java.security.KeyStoreExceptionjava.security.cert.CertificateExceptionjava.io.IOExceptionjava.security.NoSuchAlgorithmExceptionjava.security.UnrecoverableKeyException
-
usage
private static void usage()
This will print the usage for this program.
-
-