]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
Extend the user agent to pipe title, author and keywords through to the PDF. A title...
authorJeremias Maerki <jeremias@apache.org>
Sat, 12 Feb 2005 15:33:08 +0000 (15:33 +0000)
committerJeremias Maerki <jeremias@apache.org>
Sat, 12 Feb 2005 15:33:08 +0000 (15:33 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@198426 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/apps/FOUserAgent.java
src/java/org/apache/fop/pdf/PDFInfo.java
src/java/org/apache/fop/render/pdf/PDFRenderer.java

index 7e669843a402d376d36e35093bff0bd80051a3f2..2eec5a165bda19f7ca05d907d3b2a06494c9aba8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -98,6 +98,13 @@ public class FOUserAgent {
      */
     protected Date creationDate = null;
     
+    /** Author of the content of the document. */
+    protected String author = null;
+    /** Title of the document. */
+    protected String title = null;
+    /** Set of keywords applicable to this document. */
+    protected String keywords = null;
+    
     /**
      * Sets the InputHandler object for this process
      * @param inputHandler holding input file name information
@@ -233,6 +240,55 @@ public class FOUserAgent {
         return creationDate;
     }
 
+    /**
+     * Sets the author of the document.  
+     * @param author of document
+     */
+    public void setAuthor(String author) {
+        this.author = author;
+    }
+
+    /**
+     * Returns the author of the document
+     * @return author name
+     */
+    public String getAuthor() {
+        return author;
+    }
+
+    /**
+     * Sets the title of the document. This will override any title coming from
+     * an fo:title element.  
+     * @param title of document
+     */
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    /**
+     * Returns the title of the document
+     * @return title name
+     */
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * Sets the keywords for the document.  
+     * @param keywords for the document
+     */
+    public void setKeywords(String keywords) {
+        this.keywords = keywords;
+    }
+
+    /**
+     * Returns the keywords for the document
+     * @return the keywords
+     */
+    public String getKeywords() {
+        return keywords;
+    }
+
     /**
      * Returns the renderer options
      * @return renderer options
index e65e8e3ef2af739ceeb9532a51b08d005fea4809..ce926d4da922cb9efb9e1af584e6904b966a9dbf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 1999-2004 The Apache Software Foundation.
+ * Copyright 1999-2005 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -62,6 +62,11 @@ public class PDFInfo extends PDFObject {
         this.creator = creator;
     }
 
+    /** @return the title string */
+    public String getTitle() {
+        return this.title;
+    }
+
     /**
      * set the title string
      *
index 7ab7e4d9b244bd3a0c9c37d1f62c51b702e6808b..7742ab04080a09f4c465783417a9a62a44531a52 100644 (file)
@@ -84,7 +84,6 @@ import org.apache.fop.render.PrintRenderer;
 import org.apache.fop.render.RendererContext;
 import org.apache.fop.traits.BorderProps;
 import org.apache.fop.fo.Constants;
-import org.apache.fop.fo.properties.ColorTypeProperty;
 
 
 /*
@@ -253,6 +252,9 @@ public class PDFRenderer extends PrintRenderer {
                 userAgent.getProducer() != null ? userAgent.getProducer() : "");
         this.pdfDoc.setCreator(userAgent.getCreator());
         this.pdfDoc.setCreationDate(userAgent.getCreationDate());
+        this.pdfDoc.getInfo().setAuthor(userAgent.getAuthor());
+        this.pdfDoc.getInfo().setTitle(userAgent.getTitle());
+        this.pdfDoc.getInfo().setKeywords(userAgent.getKeywords());
         this.pdfDoc.setFilterMap(filterMap);
         this.pdfDoc.outputHeader(stream);
 
@@ -390,7 +392,9 @@ public class PDFRenderer extends PrintRenderer {
         if (seqTitle != null) {
             String str = convertTitleToString(seqTitle);
             PDFInfo info = this.pdfDoc.getInfo();
-            info.setTitle(str);
+            if (info.getTitle() == null) {
+                info.setTitle(str);
+            }
         }
     }