svn commit: r1877369 - in /xmlgraphics/fop-pdf-images/trunk: src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java test/resources/accessibleradiobuttons.pdf
[email protected] Tue, 05 May 2020 07:34:02 -0000
| Newsgroups | gmane.text.xml.fop.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: ssteiner
Date: Tue May 5 07:34:02 2020
New Revision: 1877369
URL: http://svn.apache.org/viewvc?rev=1877369&view=rev
Log:
FOP-2933: PDF to PDF checkbox missing
Added:
xmlgraphics/fop-pdf-images/trunk/test/resources/accessibleradiobuttons.pdf (with props)
Modified:
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
Modified: xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java?rev=1877369&r1=1877368&r2=1877369&view=diff
==============================================================================
--- xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java (original)
+++ xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/PDFBoxAdapter.java Tue May 5 07:34:02 2020
@@ -710,6 +710,7 @@ public class PDFBoxAdapter {
PDFObject clonedAnnot = (PDFObject) cloneForNewDocument(annot1, annot1, exclude);
if (clonedAnnot instanceof PDFDictionary) {
+ cloneAnnotParent(annot1, (PDFDictionary) clonedAnnot, exclude);
clonedAnnot.setParent(targetPage);
PDFBoxAdapterUtil.updateAnnotationLink((PDFDictionary) clonedAnnot);
}
@@ -719,6 +720,17 @@ public class PDFBoxAdapter {
return fields;
}
+ private void cloneAnnotParent(Object annot1, PDFDictionary clonedAnnot, Collection<COSName> exclude)
+ throws IOException {
+ if (annot1 instanceof COSObject) {
+ COSDictionary dictionary = (COSDictionary) ((COSObject) annot1).getObject();
+ COSBase parent = dictionary.getItem(COSName.PARENT);
+ if (parent != null) {
+ clonedAnnot.put(COSName.PARENT.getName(), cloneForNewDocument(parent, parent, exclude));
+ }
+ }
+ }
+
private COSDictionary getField(COSObject fieldObject, Set<COSObject> fields) {
COSDictionary field = (COSDictionary) fieldObject.getObject();
COSObject parent;
Modified: xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java?rev=1877369&r1=1877368&r2=1877369&view=diff
==============================================================================
--- xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java (original)
+++ xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java Tue May 5 07:34:02 2020
@@ -120,6 +120,7 @@ public class PDFBoxAdapterTestCase {
private static final String SMASK = "test/resources/smask.pdf";
private static final String TYPE0TT = "test/resources/type0tt.pdf";
private static final String TYPE0CFF = "test/resources/type0cff.pdf";
+ private static final String ACCESSIBLERADIOBUTTONS = "test/resources/accessibleradiobuttons.pdf";
private static PDFPage getPDFPage(PDFDocument doc) {
final Rectangle2D r = new Rectangle2D.Double();
@@ -277,6 +278,27 @@ public class PDFBoxAdapterTestCase {
doc.close();
}
+
+ @Test
+ public void testAnnot3() throws Exception {
+ PDFDocument pdfdoc = new PDFDocument("");
+ PDFPage pdfpage = getPDFPage(pdfdoc);
+ pdfpage.setDocument(pdfdoc);
+ pdfpage.setObjectNumber(1);
+ PDFBoxAdapter adapter = new PDFBoxAdapter(pdfpage, new HashMap(), new HashMap<Integer, PDFArray>());
+ PDDocument doc = PDDocument.load(new File(ACCESSIBLERADIOBUTTONS));
+ PDPage page = doc.getPage(0);
+ AffineTransform at = new AffineTransform();
+ Rectangle r = new Rectangle(0, 1650, 842000, 595000);
+ adapter.createStreamFromPDFBoxPage(doc, page, "key", at, null, r);
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ pdfdoc.output(os);
+ String out = os.toString("UTF-8");
+ Assert.assertTrue(out.contains("/Parent "));
+ Assert.assertTrue(out.contains("/Kids "));
+ doc.close();
+ }
+
@Test
public void testLink() throws Exception {
PDFDocument pdfdoc = new PDFDocument("");
Added: xmlgraphics/fop-pdf-images/trunk/test/resources/accessibleradiobuttons.pdf
URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/test/resources/accessibleradiobuttons.pdf?rev=1877369&view=auto
==============================================================================
Binary file - no diff available.
Propchange: xmlgraphics/fop-pdf-images/trunk/test/resources/accessibleradiobuttons.pdf
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream