You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2016/04/29 21:05:36 UTC
svn commit: r1741691 -
/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSignDesigner.java
Author: tilman
Date: Fri Apr 29 19:05:36 2016
New Revision: 1741691
URL: http://svn.apache.org/viewvc?rev=1741691&view=rev
Log:
PDFBOX-2852: Avoid unclosed input stream, refactor double code
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSignDesigner.java
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSignDesigner.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSignDesigner.java?rev=1741691&r1=1741690&r2=1741691&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSignDesigner.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSignDesigner.java Fri Apr 29 19:05:36 2016
@@ -17,6 +17,7 @@
package org.apache.pdfbox.pdmodel.interactive.digitalsignature.visible;
import java.awt.image.BufferedImage;
+import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -58,7 +59,11 @@ public class PDVisibleSignDesigner
public PDVisibleSignDesigner(String filename, InputStream imageStream, int page)
throws IOException
{
- this(new FileInputStream(filename), imageStream, page);
+ // set visible signature image Input stream
+ readImageStream(imageStream);
+
+ // calculate height and width of document page
+ calculatePageSizeFromFile(filename, page);
}
/**
@@ -75,13 +80,8 @@ public class PDVisibleSignDesigner
// set visible signature image Input stream
readImageStream(imageStream);
- // create PD document
- PDDocument document = PDDocument.load(documentStream);
-
// calculate height and width of document page
- calculatePageSize(document, page);
-
- document.close();
+ calculatePageSizeFromStream(documentStream, page);
}
/**
@@ -109,7 +109,11 @@ public class PDVisibleSignDesigner
public PDVisibleSignDesigner(String filename, BufferedImage image, int page)
throws IOException
{
- this(new FileInputStream(filename), image, page);
+ // set visible signature image
+ setImage(image);
+
+ // calculate height and width of document page
+ calculatePageSizeFromFile(filename, page);
}
/**
@@ -126,13 +130,8 @@ public class PDVisibleSignDesigner
// set visible signature image
setImage(image);
- // create PD document
- PDDocument document = PDDocument.load(documentStream);
-
// calculate height and width of document page
- calculatePageSize(document, page);
-
- document.close();
+ calculatePageSizeFromStream(documentStream, page);
}
/**
@@ -148,6 +147,28 @@ public class PDVisibleSignDesigner
calculatePageSize(document, page);
}
+ private void calculatePageSizeFromFile(String filename, int page) throws IOException
+ {
+ // create PD document
+ PDDocument document = PDDocument.load(new File(filename));
+
+ // calculate height and width of document page
+ calculatePageSize(document, page);
+
+ document.close();
+ }
+
+ private void calculatePageSizeFromStream(InputStream documentStream, int page) throws IOException
+ {
+ // create PD document
+ PDDocument document = PDDocument.load(documentStream);
+
+ // calculate height and width of document page
+ calculatePageSize(document, page);
+
+ document.close();
+ }
+
/**
* Each page of document can be different sizes. This method calculates the page size based on
* the page media box.
@@ -163,7 +184,6 @@ public class PDVisibleSignDesigner
throw new IllegalArgumentException("First page of pdf is 1, not " + page);
}
-
PDPage firstPage = document.getPage(page - 1);
PDRectangle mediaBox = firstPage.getMediaBox();
pageHeight(mediaBox.getHeight());