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 2023/03/12 08:44:51 UTC

svn commit: r1908315 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterObjectStream.java

Author: tilman
Date: Sun Mar 12 08:44:51 2023
New Revision: 1908315

URL: http://svn.apache.org/viewvc?rev=1908315&view=rev
Log:
PDFBOX-4892: optimize, as suggested by valerybokov

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterObjectStream.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterObjectStream.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterObjectStream.java?rev=1908315&r1=1908314&r2=1908315&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterObjectStream.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterObjectStream.java Sun Mar 12 08:44:51 2023
@@ -25,8 +25,6 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.pdfbox.contentstream.operator.Operator;
-import org.apache.pdfbox.contentstream.operator.OperatorName;
 import org.apache.pdfbox.cos.COSArray;
 import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSBoolean;
@@ -163,18 +161,13 @@ public class COSWriterObjectStream
      * @param topLevel True, if the currently written object is a top level entry of this object stream.
      * @throws IOException Shall be thrown, when an exception occurred for the write operation.
      */
-    private void writeObject(OutputStream output, Object object, boolean topLevel)
+    private void writeObject(OutputStream output, COSBase object, boolean topLevel)
             throws IOException
     {
         if (object == null)
         {
             return;
         }
-        if (object instanceof Operator)
-        {
-            writeOperator(output, (Operator) object);
-            return;
-        }
         if (!(object instanceof COSBase))
         {
             throw new IOException("Error: Unknown type in object stream:" + object);
@@ -383,34 +376,4 @@ public class COSWriterObjectStream
         output.write("null".getBytes(StandardCharsets.ISO_8859_1));
         output.write(COSWriter.SPACE);
     }
-
-    /**
-     * Write the given {@link Operator} to the given stream.
-     *
-     * @param output The stream, that shall be written to.
-     * @param operator The content, that shall be written.
-     */
-    private void writeOperator(OutputStream output, Operator operator) throws IOException
-    {
-        if (operator.getName().equals(OperatorName.BEGIN_INLINE_IMAGE))
-        {
-            output.write(OperatorName.BEGIN_INLINE_IMAGE.getBytes(StandardCharsets.ISO_8859_1));
-            COSDictionary dic = operator.getImageParameters();
-            for (COSName key : dic.keySet())
-            {
-                Object value = dic.getDictionaryObject(key);
-                key.writePDF(output);
-                output.write(COSWriter.SPACE);
-                writeObject(output, value, false);
-            }
-            output.write(
-                    OperatorName.BEGIN_INLINE_IMAGE_DATA.getBytes(StandardCharsets.ISO_8859_1));
-            output.write(operator.getImageData());
-            output.write(OperatorName.END_INLINE_IMAGE.getBytes(StandardCharsets.ISO_8859_1));
-        }
-        else
-        {
-            output.write(operator.getName().getBytes(StandardCharsets.ISO_8859_1));
-        }
-    }
 }