]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
FOP-2337 Remove xobj type=form
authorSimon Steiner <ssteiner@apache.org>
Mon, 28 Apr 2014 12:54:29 +0000 (12:54 +0000)
committerSimon Steiner <ssteiner@apache.org>
Mon, 28 Apr 2014 12:54:29 +0000 (12:54 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1590619 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/pdf/PDFResources.java
src/java/org/apache/fop/render/pdf/PDFContentGenerator.java

index 6d09d57386f02602a217dd8fa8f767b5b24099af..dc6319f077a668343219287d94533813d09c1b7c 100644 (file)
@@ -45,7 +45,7 @@ public class PDFResources extends PDFDictionary {
     /**
      * /Font objects keyed by their internal name
      */
-    protected Map<String, PDFFont> fonts = new LinkedHashMap<String, PDFFont>();
+    protected Map<String, PDFDictionary> fonts = new LinkedHashMap<String, PDFDictionary>();
 
     /**
      * Set of XObjects
@@ -76,6 +76,8 @@ public class PDFResources extends PDFDictionary {
     /** Named properties */
     protected Map<String, PDFReference> properties = new LinkedHashMap<String, PDFReference>();
 
+    private PDFResources parent;
+
     /**
      * create a /Resources object.
      *
@@ -87,13 +89,29 @@ public class PDFResources extends PDFDictionary {
         setObjectNumber(objnum);
     }
 
+    public void setParentResources(PDFResources p) {
+        parent = p;
+    }
+
+    public PDFResources getParentResources() {
+        return parent;
+    }
+
     /**
      * add font object to resources list.
      *
      * @param font the PDFFont to add
      */
     public void addFont(PDFFont font) {
-        this.fonts.put(font.getName(), font);
+        fonts.put(font.getName(), font);
+    }
+
+    public void addFont(String name, PDFDictionary font) {
+        fonts.put(name, font);
+    }
+
+    public Map<String, PDFDictionary> getFonts() {
+        return fonts;
     }
 
     /**
@@ -220,12 +238,17 @@ public class PDFResources extends PDFDictionary {
     }
 
     private void populateDictionary() {
-        if (!this.fonts.isEmpty()) {
+        if (!this.fonts.isEmpty() || (parent != null && !parent.getFonts().isEmpty())) {
             PDFDictionary dict = new PDFDictionary(this);
             /* construct PDF dictionary of font object references */
-            for (Map.Entry<String, PDFFont> entry : fonts.entrySet()) {
+            for (Map.Entry<String, PDFDictionary> entry : fonts.entrySet()) {
                 dict.put(entry.getKey(), entry.getValue());
             }
+            if (parent != null) {
+                for (Map.Entry<String, PDFDictionary> entry : parent.getFonts().entrySet()) {
+                    dict.put(entry.getKey(), entry.getValue());
+                }
+            }
             put("Font", dict);
         }
 
index ac7b1d905195fdb7480740354a339eaff6cb02b2..3f75554fbc9c068c656aef531f29586e8de23219 100644 (file)
@@ -486,6 +486,13 @@ public class PDFContentGenerator {
         restoreGraphicsState();
     }
 
+    public void placeImage(AffineTransform at, String stream) {
+        saveGraphicsState();
+        concatenate(at);
+        add(stream);
+        restoreGraphicsState();
+    }
+
     /**
      * Places a previously registered image at a certain place on the page,
      * bracketing it as a marked-content sequence.