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 2021/01/04 04:22:20 UTC
svn commit: r1885091 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSignDesigner.java
Author: tilman
Date: Mon Jan 4 04:22:20 2021
New Revision: 1885091
URL: http://svn.apache.org/viewvc?rev=1885091&view=rev
Log:
PDFBOX-5067: allow the passing of a MemoryUsageSetting, as suggested by Ralf Hauser
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSignDesigner.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSignDesigner.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSignDesigner.java?rev=1885091&r1=1885090&r2=1885091&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSignDesigner.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/interactive/digitalsignature/visible/PDVisibleSignDesigner.java Mon Jan 4 04:22:20 2021
@@ -29,6 +29,7 @@ import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.Loader;
+import org.apache.pdfbox.io.MemoryUsageSetting;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
@@ -64,11 +65,27 @@ public class PDVisibleSignDesigner
public PDVisibleSignDesigner(String filename, InputStream imageStream, int page)
throws IOException
{
+ this(filename, imageStream, page, MemoryUsageSetting.setupMainMemoryOnly());
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param filename Path of the PDF file
+ * @param imageStream image as a stream
+ * @param page The 1-based page number for which the page size should be calculated.
+ * @param memoryUsageSetting if the file to be signed is big, use this to manage memory consumption
+ * @throws IOException
+ */
+ public PDVisibleSignDesigner(String filename, InputStream imageStream, int page,
+ MemoryUsageSetting memoryUsageSetting)
+ throws IOException
+ {
// set visible signature image Input stream
readImageStream(imageStream);
// calculate height and width of document page
- calculatePageSizeFromFile(filename, page);
+ calculatePageSizeFromFile(filename, page, memoryUsageSetting);
}
/**
@@ -166,7 +183,14 @@ public class PDVisibleSignDesigner
private void calculatePageSizeFromFile(String filename, int page) throws IOException
{
- try (PDDocument document = Loader.loadPDF(new File(filename)))
+ MemoryUsageSetting memoryUsageSetting = MemoryUsageSetting.setupMainMemoryOnly();
+ calculatePageSizeFromFile(filename, page, memoryUsageSetting);
+ }
+
+ private void calculatePageSizeFromFile(String filename, int page,
+ MemoryUsageSetting memoryUsageSetting) throws IOException
+ {
+ try (PDDocument document = Loader.loadPDF(new File(filename), memoryUsageSetting))
{
// calculate height and width of document page
calculatePageSize(document, page);