You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2022/08/03 06:15:57 UTC

svn commit: r1903203 - in /pdfbox/trunk: examples/src/main/java/org/apache/pdfbox/examples/util/PDFMergerExample.java pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java

Author: lehmi
Date: Wed Aug  3 06:15:57 2022
New Revision: 1903203

URL: http://svn.apache.org/viewvc?rev=1903203&view=rev
Log:
PDFBOX-5483: replace InputStream with RandomAccessRead

Modified:
    pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/PDFMergerExample.java
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java

Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/PDFMergerExample.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/PDFMergerExample.java?rev=1903203&r1=1903202&r2=1903203&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/PDFMergerExample.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/util/PDFMergerExample.java Wed Aug  3 06:15:57 2022
@@ -22,6 +22,7 @@ import java.io.InputStream;
 import java.io.OutputStream;
 import org.apache.pdfbox.cos.COSStream;
 import org.apache.pdfbox.io.MemoryUsageSetting;
+import org.apache.pdfbox.io.RandomAccessRead;
 import org.apache.pdfbox.multipdf.PDFMergerUtility;
 import org.apache.pdfbox.pdmodel.PDDocumentInformation;
 import org.apache.pdfbox.pdmodel.common.PDMetadata;
@@ -55,14 +56,14 @@ public class PDFMergerExample
     /**
      * Creates a compound PDF document from a list of input documents.
      * <p>
-     * The merged document is PDF/A-1b compliant, provided the source documents are as well. It
-     * contains document properties title, creator and subject, currently hard-coded.
+     * The merged document is PDF/A-1b compliant, provided the source documents are as well. It contains document
+     * properties title, creator and subject, currently hard-coded.
      *
-     * @param sources list of source PDF document streams.
+     * @param sources list of source PDF documents as RandomAccessRead.
      * @return compound PDF document as a readable input stream.
      * @throws IOException if anything goes wrong during PDF merge.
      */
-    public InputStream merge(final List<InputStream> sources) throws IOException
+    public InputStream merge(final List<RandomAccessRead> sources) throws IOException
     {
         String title = "My title";
         String creator = "Alexander Kriegisch";
@@ -98,7 +99,8 @@ public class PDFMergerExample
         }
     }
 
-    private PDFMergerUtility createPDFMergerUtility(List<InputStream> sources, ByteArrayOutputStream mergedPDFOutputStream)
+    private PDFMergerUtility createPDFMergerUtility(List<RandomAccessRead> sources,
+            ByteArrayOutputStream mergedPDFOutputStream)
     {
         LOG.info("Initialising PDF merge utility");
         PDFMergerUtility pdfMerger = new PDFMergerUtility();

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java?rev=1903203&r1=1903202&r2=1903203&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java Wed Aug  3 06:15:57 2022
@@ -19,7 +19,6 @@ package org.apache.pdfbox.multipdf;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -44,6 +43,7 @@ import org.apache.pdfbox.cos.COSObject;
 import org.apache.pdfbox.cos.COSStream;
 import org.apache.pdfbox.io.IOUtils;
 import org.apache.pdfbox.io.MemoryUsageSetting;
+import org.apache.pdfbox.io.RandomAccessRead;
 import org.apache.pdfbox.pdfwriter.compress.CompressParameters;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDDocumentCatalog;
@@ -307,9 +307,9 @@ public class PDFMergerUtility
     /**
      * Add a source to the list of documents to merge.
      *
-     * @param source InputStream representing source document
+     * @param source RandomAccessRead representing source document
      */
-    public void addSource(InputStream source)
+    public void addSource(RandomAccessRead source)
     {
         sources.add(source);
     }
@@ -317,10 +317,9 @@ public class PDFMergerUtility
     /**
      * Add a list of sources to the list of documents to merge.
      *
-     * @param sourcesList List of InputStream objects representing source
-     * documents
+     * @param sourcesList List of RandomAccessRead objects representing source documents
      */
-    public void addSources(List<InputStream> sourcesList)
+    public void addSources(List<RandomAccessRead> sourcesList)
     {
         sources.addAll(sourcesList);
     }
@@ -377,7 +376,8 @@ public class PDFMergerUtility
                     }
                     else
                     {
-                        sourceDoc = Loader.loadPDF((InputStream) sourceObject, memUsageSetting);
+                        sourceDoc = Loader.loadPDF((RandomAccessRead) sourceObject,
+                                memUsageSetting);
                     }
                     for (PDPage page : sourceDoc.getPages())
                     {
@@ -453,7 +453,7 @@ public class PDFMergerUtility
                     }
                     else
                     {
-                        sourceDoc = Loader.loadPDF((InputStream) sourceObject,
+                        sourceDoc = Loader.loadPDF((RandomAccessRead) sourceObject,
                                 partitionedMemSetting);
                     }
                     tobeclosed.add(sourceDoc);