svn commit: r1900953 - in /xmlgraphics/fop-pdf-images/trunk: src/java/org/apache/fop/render/pdf/pdfbox/PDFCloner.java test/java/org/apache/fop/render/pdf/pdfbox/PDFClonerTestCase.java
[email protected] Mon, 16 May 2022 11:51:53 -0000
| Newsgroups | gmane.text.xml.fop.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: ssteiner
Date: Mon May 16 11:51:53 2022
New Revision: 1900953
URL: http://svn.apache.org/viewvc?rev=1900953&view=rev
Log:
FOP-3073: Preserve bytes when cloning string
Modified:
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFCloner.java
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/pdfbox/PDFClonerTestCase.java
Modified: xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFCloner.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFCloner.java?rev=1900953&r1=1900952&r2=1900953&view=diff
==============================================================================
--- xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFCloner.java (original)
+++ xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFCloner.java Mon May 16 11:51:53 2022
@@ -165,7 +165,7 @@ public class PDFCloner {
return cacheClonedObject(keyBase, new PDFString(bytes));
} else {
if (PDFString.isUSASCII(bytes)) {
- return cacheClonedObject(keyBase, string.getString());
+ return cacheClonedObject(keyBase, new String(string.getBytes(), PDFDocument.ENCODING));
} else {
return cacheClonedObject(keyBase, bytes);
}
Modified: xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/pdfbox/PDFClonerTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/pdfbox/PDFClonerTestCase.java?rev=1900953&r1=1900952&r2=1900953&view=diff
==============================================================================
--- xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/pdfbox/PDFClonerTestCase.java (original)
+++ xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/pdfbox/PDFClonerTestCase.java Mon May 16 11:51:53 2022
@@ -18,7 +18,9 @@
/* $Id$ */
package org.apache.fop.render.pdf.pdfbox;
+import java.awt.geom.Rectangle2D;
import java.io.IOException;
+import java.util.HashMap;
import org.junit.Assert;
import org.junit.Test;
@@ -28,6 +30,11 @@ import org.apache.pdfbox.cos.COSDictiona
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.cos.COSObject;
import org.apache.pdfbox.cos.COSStream;
+import org.apache.pdfbox.cos.COSString;
+
+import org.apache.fop.pdf.PDFDocument;
+import org.apache.fop.pdf.PDFPage;
+import org.apache.fop.pdf.PDFResources;
public class PDFClonerTestCase {
@Test
@@ -46,4 +53,15 @@ public class PDFClonerTestCase {
root.setItem(COSName.C, array);
return root;
}
+
+ @Test
+ public void testString() throws IOException {
+ COSString string = new COSString(new byte[]{(byte) 127, (byte) 127});
+ PDFDocument doc = new PDFDocument("");
+ Rectangle2D r = new Rectangle2D.Double();
+ PDFPage page = new PDFPage(new PDFResources(doc), 0, r, r, r, r);
+ PDFBoxAdapter adapter = new PDFBoxAdapter(page, new HashMap<>(), null, new HashMap<>());
+ String cloned = (String) new PDFCloner(adapter).cloneForNewDocument(string);
+ Assert.assertArrayEquals(cloned.getBytes(PDFDocument.ENCODING), string.getBytes());
+ }
}