From 85e574618b04a34d5e41444d17ce7e6d5a93cc5b Mon Sep 17 00:00:00 2001 From: netconomy Date: Thu, 6 Sep 2007 12:18:45 +0000 Subject: =?UTF-8?q?Streaming=20R=C3=BCckbau?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@210 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- .../knowcenter/wag/egov/egiz/pdf/BinarySignature.java | 7 ++++--- .../java/at/knowcenter/wag/egov/egiz/pdf/EGIZDate.java | 16 +++++++++++++--- .../at/knowcenter/wag/egov/egiz/pdf/PDFUtilities.java | 15 ++++++++++++--- .../knowcenter/wag/egov/egiz/pdf/TextualSignature.java | 17 ++++++++++------- 4 files changed, 39 insertions(+), 16 deletions(-) (limited to 'src/main/java/at/knowcenter/wag/egov/egiz/pdf') diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignature.java b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignature.java index d253393..677990b 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignature.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/BinarySignature.java @@ -689,9 +689,10 @@ public abstract class BinarySignature // System.out.println("wprinz: STAMPING PDF"); - InputStream is = original_document.createInputStream(); - PdfReader reader = new PdfReader(is); - is.close(); + //InputStream is = original_document.createInputStream(); + byte [] pdf_data = original_document.getAsByteArray(); + PdfReader reader = new PdfReader(pdf_data); + //is.close(); OutputStream baos = written_pdf.createOutputStream("application/pdf"); // ByteArrayOutputStream baos = new ByteArrayOutputStream(); diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/EGIZDate.java b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/EGIZDate.java index 8b8475c..b801706 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/EGIZDate.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/EGIZDate.java @@ -134,9 +134,19 @@ public class EGIZDate { if (li >= 19) { date_value = new StringBuffer(date_value).deleteCharAt(li).toString(); } - if (date_value.endsWith("Z")) { - date_value = date_value.substring(0, date_value.length()-2) + "UTC"; - } + // FIXME: @iaik: wenn man bei UTC+"Z" die letzten -2 Zeichen durch "UTC" ersetzt verliert die Zeit ihre Sekunden-Einerstelle!!!!!!! + // alter code: +// if (date_value.endsWith("Z")) { +// date_value = date_value.substring(0, date_value.length()-2) + "UTC"; +// } + // neuer code: + if (date_value.endsWith("ZZ")) { + date_value = date_value.substring(0, date_value.length()-2) + "UTC"; + } + if (date_value.endsWith("Z")) { + date_value = date_value.substring(0, date_value.length()-1) + "UTC"; + } + } else { date_value += "UTC"; } diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFUtilities.java b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFUtilities.java index e19c244..b40d129 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFUtilities.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/PDFUtilities.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.util.List; import at.gv.egiz.pdfas.framework.input.PdfDataSource; +import at.gv.egiz.pdfas.impl.input.ByteArrayPdfDataSourceImpl; import org.pdfbox.pdfparser.PDFParser; import org.pdfbox.pdmodel.PDDocument; @@ -47,7 +48,7 @@ public abstract class PDFUtilities { //ByteArrayInputStream original_bais = new ByteArrayInputStream(pdf); //byte [] normalized_pdf = TextualSignature.normalizePDF(original_bais); - byte [] normalized_pdf = TextualSignature.normalizePDF(pdfDataSource.createInputStream()); + byte [] normalized_pdf = TextualSignature.normalizePDF(pdfDataSource); // PERF: The whole PDF normalization process is costy ByteArrayInputStream bais = new ByteArrayInputStream(normalized_pdf); @@ -80,12 +81,20 @@ public abstract class PDFUtilities return calculatePageLength(pdpage, footer_line); } + /** + * @deprecated + * @param pdf + * @param footer_line + * @return + * @throws PDFDocumentException + */ public static float calculateLastPageLength(final byte[] pdf, float footer_line) throws PDFDocumentException { try { - ByteArrayInputStream original_bais = new ByteArrayInputStream(pdf); - byte [] normalized_pdf = TextualSignature.normalizePDF(original_bais); + //ByteArrayInputStream original_bais = new ByteArrayInputStream(pdf); + PdfDataSource dataSource = new ByteArrayPdfDataSourceImpl(pdf); + byte [] normalized_pdf = TextualSignature.normalizePDF(dataSource); ByteArrayInputStream bais = new ByteArrayInputStream(normalized_pdf); diff --git a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TextualSignature.java b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TextualSignature.java index 668bbcb..04b96fc 100644 --- a/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TextualSignature.java +++ b/src/main/java/at/knowcenter/wag/egov/egiz/pdf/TextualSignature.java @@ -25,6 +25,7 @@ import java.io.InputStream; import at.gv.egiz.pdfas.performance.PerformanceCounters; import at.gv.egiz.pdfas.exceptions.pdf.TextExtractionException; +import at.gv.egiz.pdfas.framework.input.PdfDataSource; import org.apache.log4j.Logger; import org.pdfbox.pdfparser.PDFParser; @@ -64,7 +65,7 @@ public class TextualSignature * @throws PresentableException * Forwarded exception. */ - public static String extractTextTextual(InputStream pdf_stream) throws TextExtractionException + public static String extractTextTextual(PdfDataSource pdfDataSource) throws TextExtractionException { PerformanceCounters.textExtractions.increment(); @@ -83,8 +84,9 @@ public class TextualSignature // byte[] bytes = normalizePDF(pdf_stream); //iText - PdfReader reader = new PdfReader(pdf_stream); - pdf_stream.close(); + byte [] pdf_data = pdfDataSource.getAsByteArray(); + PdfReader reader = new PdfReader(pdf_data); + //pdf_stream.close(); // PERF: PDF normalization needs byte array - this is costy ByteArrayOutputStream baos = new ByteArrayOutputStream(4096); @@ -202,11 +204,12 @@ public class TextualSignature * @throws IOException * @throws DocumentException */ - public static byte[] normalizePDF(InputStream input_pdf) throws IOException, DocumentException + public static byte[] normalizePDF(PdfDataSource pdfDataSource) throws IOException, DocumentException { - //iText - PdfReader reader = new PdfReader(input_pdf); - input_pdf.close(); + //iText + byte [] pdf_data = pdfDataSource.getAsByteArray(); + PdfReader reader = new PdfReader(pdf_data); + //input_pdf.close(); // PERF: PDF Normalization needs byte array ByteArrayOutputStream baos = new ByteArrayOutputStream(); -- cgit v1.2.3