Ich arbeite mit der pdfbox Beispielsignatur CreateVisableSignature und möchte, dass der Code das Bild der Signatur in ein Signaturfeld namens "ApplicantSignature" schreibt auf der dritten Seite.Wie bekomme ich PDVisibleSigProperties, um die Signatur auf der 3-Seite in das Signaturfeld zu schreiben
Kann jemand einen Hinweis geben, warum er die Unterschrift in der oberen linken Ecke der ersten Seite schreibt? Hier
ist der Code:
public static void main(String[] args) throws KeyStoreException,
NoSuchAlgorithmException, CertificateException,
FileNotFoundException, IOException, COSVisitorException,
SignatureException {
if (args.length != 4) {
usage();
System.exit(1);
} else {
File ksFile = new File(args[0]);
KeyStore keystore = KeyStore.getInstance("PKCS12", provider);
char[] pin = args[1].toCharArray();
keystore.load(new FileInputStream(ksFile), pin);
File document = new File(args[2]);
CreateVisibleSignature signing = new CreateVisibleSignature(
keystore, pin.clone());
String jpgFile = CreateVisibleSignature.convertPngToJpeg(args[3]);
FileInputStream image = new FileInputStream(jpgFile);
PDVisibleSignDesigner visibleSig = new PDVisibleSignDesigner(
args[2], image, 1);
visibleSig.xAxis(0).yAxis(0).zoom(-75)
.signatureFieldName("ApplicantSignature");
PDVisibleSigProperties signatureProperties = new PDVisibleSigProperties();
signatureProperties.signerName("name").signerLocation("location")
.signatureReason("Security").preferredSize(0).page(3)
.visualSignEnabled(true).setPdVisibleSignature(visibleSig)
.buildSignature();
signing.signPDF(document, signatureProperties);
}
}
Ich habe auch versucht:
PDVisibleSignDesigner visibleSig = new PDVisibleSignDesigner(
args[2], image, 3);
visibleSig.xAxis(0).yAxis(0).zoom(-75)
.signatureFieldName("ApplicantSignature");
PDVisibleSigProperties signatureProperties = new PDVisibleSigProperties();
signatureProperties.signerName("name").signerLocation("location")
.signatureReason("Security").preferredSize(0).page(1)
.visualSignEnabled(true).setPdVisibleSignature(visibleSig)
.buildSignature();
Und ich habe versucht:
PDVisibleSignDesigner visibleSig = new PDVisibleSignDesigner(
args[2], image, 3);
visibleSig.xAxis(0).yAxis(0).zoom(-75)
.signatureFieldName("ApplicantSignature");
PDVisibleSigProperties signatureProperties = new PDVisibleSigProperties();
signatureProperties.signerName("name").signerLocation("location")
.signatureReason("Security").preferredSize(0).page(3)
.visualSignEnabled(true).setPdVisibleSignature(visibleSig)
.buildSignature();
Dies ist, wo ich die Unterschrift wollen gehen die dritte Seite.
Dies ist, wo es auf der ersten Seite geht.
Dies sind die Feldnamen im Formular.
Ist [dies (http://www.ors.od.nih.gov/ser/dpsac/bgchecks/Documents/hhs-745.pdf)](http://www.ors.od.nih.gov /ser/dpsac/bgchecks/Documents/hhs-745.pdf) Ihr Formular? Wenn dies der Fall ist, hat ** A ** das Signaturfeld für die Anmelder-Signatur den Namen 'topmostSubform [0] .Page3 [0] .SignatureField1 [0]', nicht 'ApplicantSignature' und ** B ** das Formular ist eine hybride AcroForm/XFA-Form, die die Dinge ein wenig komplizieren kann. Wenn dies nicht der Fall ist, geben Sie bitte Ihre Version des Formulars zur Analyse und Reproduktion des Problems an. – mkl
@mkl Wenn er wirklich dieses Dokument signieren will, dann wird es überhaupt nicht mit PDFBox funktionieren. Dieses Dokument hat/UR3-Berechtigungen, die wir nicht unterstützen. Das Dokument wird zwar signiert, aber es kommt eine Fehlermeldung, dass die erweiterten Eigenschaften verloren gehen. –
@TilmanHausdrücker Ich fürchte, es gibt mehr im Code gebrochen, der die sichtbare Unterschrift verursacht. Das OP verwendet insbesondere 'signatureFieldName (" ApplicantSignature ")' in der Hoffnung, dass dies den Namen (** T ** - Wert) des Signaturformularfeldes setzt. Im Code sehe ich nur, dass der Wert verwendet wird, um den Namen (** Name ** Wert) in einem Signaturwörterbuch festzulegen. Darüber hinaus sehe ich keinen Code für die Verwendung eines vorhandenen leeren Signaturformularfeldes; aber ich denke, das ist genau das, was der OP tun möchte, unterschreiben Sie das leere Unterschriftsfeld, von dem er annimmt, dass es den Namen 'ApplicantSignature' trägt. – mkl