Je suis en train d'écrire une application pour signer et horodater des fichiers PDF en utilisant iText et Java. Parce que nous (en Slovénie) avons une approche différente pour obtenir l'horodatage de notre TSA (via le service web, en utilisant un certificat et un mot de passe) je ne peux pas utiliser ces méthodes d'iText. J'ai un script Perl pour ça. Alors ... comment, ou avec quelles parties du code puis-je écrire horodatage et digérer (à partir d'une réponse de service Web) à un fichier PDF?Problème avec l'horodatage d'un PDF en utilisant Java et iText
Répondre
Je ne suis pas si je suis exactement ce que vous demandez, mais il semble que vous vouliez ajuster la date qui est rapportée pour la signature du PDF.
En supposant que vous utilisez PdfStamper de signer le document, après avoir créé la signature essayer
pdfStamper.getSignatureAppearence().setSignDate(calendar)
où le calendrier est une instance de calendrier que vous avez créé en utilisant une réponse de votre horodatage service Web. Obtenir iText pour inclure les informations TSA avec la signature est un peu plus complexe. C'est un peu en dehors de mon domaine de connaissances, mais d'après ce que je comprends, vous devez utiliser un certificat généré de l'extérieur, et la plupart des gens le font en utilisant BouncyCastle.
Cette discussion a un exemple de la façon de le faire. Vous voudrez éventuellement utiliser TSAClientBouncyCastle lors de l'obtention du certificat crypté. Ce page a un autre exemple incluant des informations OCSP.
Si cela vous convient, veuillez ajouter votre solution afin d'obtenir une réponse plus fiable sur stackoverflow.
ici est un exemple
http://itextpdf.sourceforge.net/howtosign.html#signtsocspjava
vous devez remplacer
sap.setCrypto(null, chain, null, PdfSignatureAppearance.SELF_SIGNED);
pour
sap.setCrypto(pk, chain, null, PdfSignatureAppearance.WINCER_SIGNED);
et mettre ces version correcte de libs
- org.bouncycastle -> bcprov-jdk16 1.40
- org.bouncycastle -> bctsp-jdk16 1.38
avertissement: vous utilisez la longue version obsolète itext 2 avec la chose Wincer_Signed depuis longtemps obsolète! –
- 1. Problème avec la création de pdf en utilisant itext
- 2. Itext PDF manipulation en java
- 3. impossible de signer numériquement pdf en utilisant itext et java
- 4. Ecraser créationDate en pdf en utilisant iText et pdf writer
- 5. Remplir xfa format pdf en utilisant itext dans java
- 6. java itext créer un pdf avec l'hébreu (rtl) et l'anglais
- 7. Conversion HTML en PDF en utilisant iText
- 8. Générer un fichier pdf en utilisant java, Itext
- 9. Texte japonais/chinois en pdf utilisant iText Java
- 10. iText Java désactiver imprimer pdf
- 11. Java iText Geospatial PDF exportateur
- 12. générer PDF Persan avec iText
- 13. En-tête multiligne avec iText en Java
- 14. Lecture d'annotations PDF avec iText
- 15. Itext pageNumber Afficher en PDF
- 16. Pouvez-vous afficher et modifier un PDF en Java en utilisant iText en même temps?
- 17. Problème d'aplatissement iText avec texte en filigrane
- 18. Mettre une coche en pdf en utilisant itext
- 19. iText Fusionner PDF avec cropbox
- 20. Table HTML en format PDF en utilisant iText
- 21. Ajouter l'ancre au pdf using itext java
- 22. Données de l'adaptateur en PDF avec iText
- 23. xml Imprimer en PDF à l'aide itext
- 24. Autoriser la signature de pdf en utilisant iText
- 25. Split Big Image en PDF créé en utilisant iText
- 26. Lire le fichier PDF et l'offrir en téléchargement avec iText
- 27. Sauvegarder tiff CCITTFaxDecode (à partir de la page PDF) en utilisant iText et Java
- 28. En utilisant Java et IText, comment extraire les noms de champs AcroForm d'un PDF?
- 29. Problème avec PdfTextExtractor dans itext!
- 30. Comment extraire les données d'un fichier pdf en utilisant iText
'si je mets ceci dans mon code, le lecteur de pdf dira toujours que la date et l'heure proviennent de l'ordinateur du signataire. de WS-réponse, je reçois: "#TimeStampInfo -..." -> dsig: DigestValue (dièse) "#TimeStampAuthority" -> dsig: DigestValue (dièse) dsig: SignedInfo -> dsig: SignatureValue (hash), dsig: X509Certificate (hash); TimeStampInfo -> ds: DigestValue (hash), ts: numéro de série (long), ts: CreationTime (horodatage), ts: Nonce (long); J'ai besoin d'ajouter ces valeurs au format PDF, que le lecteur reconnaîtra comme timestamp TSA. Quelles sont les métodonnées à remplacer? Est-ce que je peux voir ceci profondément dans le code? ' – TurboJupi
D'accord, je vois où vous allez avec ceci maintenant. C'est un peu en dehors de mon domaine de connaissance, mais vérifiez les liens dans la réponse. Ils pourraient vous aider, et d'autres pourraient être en mesure d'élaborer. – tschaible