aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/SignatureUtils.java
diff options
context:
space:
mode:
authorAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-07-08 09:55:12 +0200
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2014-07-08 09:55:12 +0200
commitde6b5593bd28cf91ecef3b9ec1123fc06de1e49f (patch)
tree029985549957e6e52e1b988b588a494903b6f33a /pdf-as-lib/src/main/java/at/gv/egiz/pdfas/lib/util/SignatureUtils.java
parent8e71c5c2fe0bbd588b95dd4158dd1e378c146e07 (diff)
downloadpdf-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.java29
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;
+ }
+}