diff options
author | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-07-08 09:55:12 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2014-07-08 09:55:12 +0200 |
commit | de6b5593bd28cf91ecef3b9ec1123fc06de1e49f (patch) | |
tree | 029985549957e6e52e1b988b588a494903b6f33a /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/SignatureUtils.java | |
parent | 8e71c5c2fe0bbd588b95dd4158dd1e378c146e07 (diff) | |
download | pdf-as-4-de6b5593bd28cf91ecef3b9ec1123fc06de1e49f.tar.gz pdf-as-4-de6b5593bd28cf91ecef3b9ec1123fc06de1e49f.tar.bz2 pdf-as-4-de6b5593bd28cf91ecef3b9ec1123fc06de1e49f.zip |
Fixed unique Signature field names, to make Adobe Reader happy
Diffstat (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/SignatureUtils.java')
-rw-r--r-- | pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/SignatureUtils.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/SignatureUtils.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/SignatureUtils.java new file mode 100644 index 00000000..28713e1a --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/SignatureUtils.java @@ -0,0 +1,29 @@ +package at.gv.egiz.pdfas.lib.util; + +import org.apache.pdfbox.cos.COSArray; +import org.apache.pdfbox.cos.COSDictionary; +import org.apache.pdfbox.cos.COSName; +import org.apache.pdfbox.pdmodel.PDDocument; + +public class SignatureUtils { + + public static int countSignatures(PDDocument doc) { + int count = 0; + COSDictionary trailer = doc.getDocument().getTrailer(); + COSDictionary root = (COSDictionary) trailer + .getDictionaryObject(COSName.ROOT); + COSDictionary acroForm = (COSDictionary) root + .getDictionaryObject(COSName.ACRO_FORM); + COSArray fields = (COSArray) acroForm + .getDictionaryObject(COSName.FIELDS); + for (int i = 0; i < fields.size(); i++) { + COSDictionary field = (COSDictionary) fields.getObject(i); + String type = field.getNameAsString("FT"); + if ("Sig".equals(type)) { + count++; + } + } + + return count; + } +} |