diff options
author | Christian Maierhofer <cmaierhofer@iaik.tugraz.at> | 2016-06-08 08:12:21 +0200 |
---|---|---|
committer | Andreas Fitzek <andreas.fitzek@iaik.tugraz.at> | 2016-08-17 16:45:49 +0200 |
commit | c4e41301d0746ce57044a3aa41375cff3a9f2b5e (patch) | |
tree | bdf13d0a0d7fae97215a84286e31ff894bacc979 /pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/PDFBOXObject.java | |
parent | a7945fff6ca14d35ac75039712736dddc6d48e90 (diff) | |
download | pdf-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/gv/egiz/pdfas/lib/impl/pdfbox2/PDFBOXObject.java')
-rw-r--r-- | pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/PDFBOXObject.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/PDFBOXObject.java b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/PDFBOXObject.java new file mode 100644 index 00000000..0eee4cd3 --- /dev/null +++ b/pdf-as-pdfbox-2/src/main/java/at/gv/egiz/pdfas/lib/impl/pdfbox2/PDFBOXObject.java @@ -0,0 +1,70 @@ +package at.gv.egiz.pdfas.lib.impl.pdfbox2; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import javax.activation.DataSource; + +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.pdmodel.font.PDFont; + +import at.gv.egiz.pdfas.lib.impl.status.OperationStatus; +import at.gv.egiz.pdfas.lib.impl.status.PDFObject; + +public class PDFBOXObject extends PDFObject { + + private PDDocument doc; + + private Map<String, PDFont> fontCache = new HashMap<String, PDFont>(); + + public PDFBOXObject(OperationStatus operationStatus) { + super(operationStatus); + } + + @Override + protected void finalize() throws Throwable { + super.finalize(); + if(doc != null) { + doc.close(); + } + } + + public void close() { + if(doc != null) { + try { + doc.close(); + //System.gc(); + } catch(Throwable e) { + // ignore! + } + doc = null; + } + } + + public void setOriginalDocument(DataSource originalDocument) throws IOException { + this.originalDocument = originalDocument; + if(doc != null) { + doc.close(); + } + synchronized(PDDocument.class) { + this.doc = PDDocument.load(this.originalDocument.getInputStream()); + } + if(this.doc != null) { + this.doc.getDocument().setWarnMissingClose(false); + } + } + + public PDDocument getDocument() { + return this.doc; + } + + @Override + public String getPDFVersion() { + return String.valueOf(getDocument().getDocument().getVersion()); + } + + public Map<String, PDFont> getFontCache() { + return fontCache; + } +} |