aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFUtilities.java
diff options
context:
space:
mode:
authorChristian Maierhofer <cmaierhofer@iaik.tugraz.at>2016-06-08 08:12:21 +0200
committerAndreas Fitzek <andreas.fitzek@iaik.tugraz.at>2016-08-17 16:45:49 +0200
commitc4e41301d0746ce57044a3aa41375cff3a9f2b5e (patch)
treebdf13d0a0d7fae97215a84286e31ff894bacc979 /pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFUtilities.java
parenta7945fff6ca14d35ac75039712736dddc6d48e90 (diff)
downloadpdf-as-4-c4e41301d0746ce57044a3aa41375cff3a9f2b5e.tar.gz
pdf-as-4-c4e41301d0746ce57044a3aa41375cff3a9f2b5e.tar.bz2
pdf-as-4-c4e41301d0746ce57044a3aa41375cff3a9f2b5e.zip
initial pdfbox-2 commit
Diffstat (limited to 'pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFUtilities.java')
-rw-r--r--pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFUtilities.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFUtilities.java b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFUtilities.java
new file mode 100644
index 00000000..c1578120
--- /dev/null
+++ b/pdf-as-pdfbox-2/src/main/java/at/knowcenter/wag/egov/egiz/pdfbox2/pdf/PDFUtilities.java
@@ -0,0 +1,112 @@
+/*******************************************************************************
+ * <copyright> Copyright 2014 by E-Government Innovation Center EGIZ, Graz, Austria </copyright>
+ * 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.
+ ******************************************************************************/
+/**
+ * <copyright> Copyright 2006 by Know-Center, Graz, Austria </copyright>
+ * 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.
+ *
+ * $Id: PDFUtilities.java,v 1.3 2006/10/31 08:09:33 wprinz Exp $
+ */
+package at.knowcenter.wag.egov.egiz.pdfbox2.pdf;
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.pdfbox.cos.COSStream;
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.PDPage;
+import org.apache.pdfbox.pdmodel.PDPageTree;
+import org.apache.pdfbox.pdmodel.PDResources;
+import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
+
+import at.gv.egiz.pdfas.common.exceptions.PDFIOException;
+
+/**
+ * Contains useful helpers for accessing PDF documents.
+ *
+ * @author wprinz
+ * @author mruhmer
+ */
+public abstract class PDFUtilities {
+ public static float calculatePageLength(PDDocument document, int page,
+ float effectivePageHeight, /* int pagerotation, */boolean legacy32, boolean legacy40)
+ throws PDFIOException {
+ // int last_page_id = document.getNumberOfPages();
+ PDPageTree allPages = document.getDocumentCatalog().getPages();
+ PDPage pdpage = allPages.get(page);
+ // pdpage.setRotation(pagerotation);
+ return calculatePageLength(pdpage, effectivePageHeight, legacy32, legacy40);
+ }
+
+ public static float calculatePageLength(PDPage page,
+ float effectivePageHeight, boolean legacy32, boolean legacy40) throws PDFIOException {
+ try {
+ PDFPage my_page = new PDFPage(effectivePageHeight, legacy32, legacy40);
+ //PDResources resources = page.getResources();
+ if (page.getContents() != null) {
+ //COSStream stream = page.getContents();
+ // List<PDThreadBead> articles = page.getThreadBeads();
+ // my_page.processMyPage(page);
+ //my_page.processStream(page, resources, stream); //TODO: pdfbox2 -> right?
+ my_page.processPage(page);
+ }
+ if (!legacy32) {
+ if (page.getAnnotations() != null) {
+ Iterator<PDAnnotation> annotationsIt = page
+ .getAnnotations().iterator();
+
+ while (annotationsIt.hasNext()) {
+ PDAnnotation annotation = annotationsIt.next();
+ if (!annotation.isInvisible()) {
+ my_page.processAnnotation(annotation);
+ }
+ }
+ }
+ }
+ return my_page.getMaxPageLength();
+ } catch (IOException e) {
+ throw new PDFIOException("error.pdf.stamp.11", e);
+ }
+ }
+
+}