From 535a04fa05f739ec16dd81666e3b0f82dfbd442d Mon Sep 17 00:00:00 2001 From: tknall Date: Wed, 9 Jan 2013 15:41:29 +0000 Subject: pdf-as-lib maven project files moved to pdf-as-lib git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/pdf-as/trunk@926 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../egiz/pdfas/api/analyze/AnalyzeParameters.java | 107 +++++++++++++++++++++ .../gv/egiz/pdfas/api/analyze/AnalyzeResult.java | 63 ++++++++++++ .../egiz/pdfas/api/analyze/NonTextObjectInfo.java | 99 +++++++++++++++++++ 3 files changed, 269 insertions(+) create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeParameters.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeResult.java create mode 100644 pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze/NonTextObjectInfo.java (limited to 'pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze') diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeParameters.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeParameters.java new file mode 100644 index 0000000..1ce7057 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeParameters.java @@ -0,0 +1,107 @@ +/** + * Copyright 2006 by Know-Center, Graz, Austria + * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a + * joint initiative of the Federal Chancellery Austria and Graz University of + * Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ +package at.gv.egiz.pdfas.api.analyze; + +import at.gv.egiz.pdfas.api.commons.Constants; +import at.gv.egiz.pdfas.api.io.DataSource; + +/** + * Parameter object that holds the analyze parameters. + * + * @author wprinz + */ +public class AnalyzeParameters +{ + + /** + * The document to be analyzed. + */ + protected DataSource document = null; + + /** + * The mode of operation how the document is analyzed. + * + *

+ * May be {@link Constants#VERIFY_MODE_BINARY_ONLY} to check the document for + * binary signatures only (very fast). Or may be + * {@link Constants#VERIFY_MODE_SEMI_CONSERVATIVE} to perform a semi + * conservative (optimized) text and binary verification (slow). Or may be + * {@link Constants#VERIFY_MODE_FULL_CONSERVATIVE} to perform a full + * conservative text and binary verification (very slow). + *

+ */ + protected String verifyMode = Constants.VERIFY_MODE_FULL_CONSERVATIVE; + + protected boolean returnNonTextualObjects = false; + + protected boolean hasBeenCorrected = false; + + /** + * @return the document + */ + public DataSource getDocument() + { + return this.document; + } + + /** + * @param document the document to set + */ + public void setDocument(DataSource document) + { + this.document = document; + } + + /** + * @return the verifyMode + */ + public String getVerifyMode() + { + return this.verifyMode; + } + + /** + * @param verifyMode the verifyMode to set + */ + public void setVerifyMode(String verifyMode) + { + this.verifyMode = verifyMode; + } + + public boolean isReturnNonTextualObjects() { + return this.returnNonTextualObjects; + } + + /** + * Tells if non text object of the signed pdf should be extracted and returned. + * One should show this to the user, especially in case of textual signature. + * Defaults to false + * + * @param returnNonTextualObjects + */ + public void setReturnNonTextualObjects(boolean returnNonTextualObjects) { + this.returnNonTextualObjects = returnNonTextualObjects; + } + +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeResult.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeResult.java new file mode 100644 index 0000000..9b913ae --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze/AnalyzeResult.java @@ -0,0 +1,63 @@ +/** + * Copyright 2006 by Know-Center, Graz, Austria + * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a + * joint initiative of the Federal Chancellery Austria and Graz University of + * Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ +package at.gv.egiz.pdfas.api.analyze; + +import java.util.List; + +import at.gv.egiz.pdfas.api.commons.SignatureInformation; +import at.gv.egiz.pdfas.api.exceptions.PdfAsException; + +/** + * The result of an analyze operation, which is a list of verifyable signatures. + * + * @author wprinz + * + */ +public interface AnalyzeResult +{ + /** + * Returns the list of found signatures. + * + * @return Returns a list of {@link SignatureInformation} objects representing all + * found signatures. + * @throws PdfAsException + * Thrown on error. + * + * @see SignatureInformation + */ + public List getSignatures() throws PdfAsException; + + public List getNoSignatures(); + + /** + * Tells if the document has been corrected before verification. The correction maybe done + * after a first failing parse to repair a document (if enabled in the configuration + * correct_document_on_verify_if_necessary). The correction can only work for textual + * signatures. Binary signatures are lost anyhow. + * @return + */ + public boolean hasBeenCorrected(); + + +} diff --git a/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze/NonTextObjectInfo.java b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze/NonTextObjectInfo.java new file mode 100644 index 0000000..08297b7 --- /dev/null +++ b/pdf-as-lib/src/main/java/at/gv/egiz/pdfas/api/analyze/NonTextObjectInfo.java @@ -0,0 +1,99 @@ +/** + * Copyright 2006 by Know-Center, Graz, Austria + * PDF-AS has been contracted by the E-Government Innovation Center EGIZ, a + * joint initiative of the Federal Chancellery Austria and Graz University of + * Technology. + * + * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by + * the European Commission - subsequent versions of the EUPL (the "Licence"); + * You may not use this work except in compliance with the Licence. + * You may obtain a copy of the Licence at: + * http://www.osor.eu/eupl/ + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the Licence is distributed on an "AS IS" basis, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the Licence for the specific language governing permissions and + * limitations under the Licence. + * + * This product combines work with different licenses. See the "NOTICE" text + * file for details on the various modules and licenses. + * The "NOTICE" text file is part of the distribution. Any derivative works + * that you distribute must include a readable copy of the "NOTICE" text file. + */ +package at.gv.egiz.pdfas.api.analyze; + +/** + * Encapsulates information about non textual objects in a pdf document. + * + * @author dferbas + * + */ +public class NonTextObjectInfo { + public static final String TYPE_IMAGE = "image"; + public static final String TYPE_ANNOTATION = "annotation"; + + private String objectType; + private String subType; + private String name; + private int pageNr; + private double width; + private double height; + + public String getObjectType() { + return this.objectType; + } + + public void setObjectType(String objectType) { + this.objectType = objectType; + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + + public int getPageNr() { + return this.pageNr; + } + + public void setPageNr(int pageNr) { + this.pageNr = pageNr; + } + + public double getWidth() { + return this.width; + } + + public void setWidth(double width) { + this.width = width; + } + + public double getHeight() { + return this.height; + } + + public void setHeight(double height) { + this.height = height; + } + + public String getSubType() { + return this.subType; + } + + public void setSubType(String subType) { + this.subType = subType; + } + + + + public String toString() { + return "NonTextObjectInfo [height=" + this.height + ", name=" + this.name + ", objectType=" + + this.objectType + ", pageNr=" + this.pageNr + ", subType=" + this.subType + + ", width=" + this.width + "]"; + } + +} -- cgit v1.2.3