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 2019/04/04 16:55:26 UTC
svn commit: r1856960 -
/pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
Author: tilman
Date: Thu Apr 4 16:55:26 2019
New Revision: 1856960
URL: http://svn.apache.org/viewvc?rev=1856960&view=rev
Log:
PDFBOX-45: arrays in dictionaries or arrays are to be written as indirect objects when needed, as it is already done with dictionaries in dictionaries and arrays
Modified:
pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
Modified: pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java?rev=1856960&r1=1856959&r2=1856960&view=diff
==============================================================================
--- pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java (original)
+++ pdfbox/branches/issue45/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/COSWriter.java Thu Apr 4 16:55:26 2019
@@ -943,6 +943,20 @@ public class COSWriter implements ICOSVi
writeReference( current );
}
}
+ else if (current instanceof COSArray)
+ {
+ if (current.isDirect())
+ {
+ // If the object should be written direct, we need
+ // to pass the array to the visitor again.
+ visitFromArray((COSArray) current);
+ }
+ else
+ {
+ addObjectToWrite(current);
+ writeReference(current);
+ }
+ }
else if( current instanceof COSObject )
{
COSBase subValue = ((COSObject)current).getObject();
@@ -1045,6 +1059,20 @@ public class COSWriter implements ICOSVi
writeReference( dict );
}
}
+ else if (value instanceof COSArray)
+ {
+ if (value.isDirect())
+ {
+ // If the object should be written direct, we need
+ // to pass the array to the visitor again.
+ visitFromArray((COSArray) value);
+ }
+ else
+ {
+ addObjectToWrite(value);
+ writeReference(value);
+ }
+ }
else if( value instanceof COSObject )
{
COSBase subValue = ((COSObject)value).getObject();