You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by gm...@apache.org on 2005/01/04 01:21:47 UTC
cvs commit: xml-fop/src/java/org/apache/fop/render/pdf PDFRenderer.java
gmazza 2005/01/03 16:21:47
Modified: examples/fo/advanced cid-fonts.fo
examples/fo/basic pdfoutline.fo
src/java/org/apache/fop/area BookmarkData.java
src/java/org/apache/fop/fo Constants.java
FOElementMapping.java PropertySets.java
src/java/org/apache/fop/fo/extensions
ExtensionElementMapping.java
src/java/org/apache/fop/fo/pagination/bookmarks
BookmarkTree.java
src/java/org/apache/fop/render/pdf PDFRenderer.java
Added: src/java/org/apache/fop/fo/pagination/bookmarks
Bookmark.java
Removed: src/java/org/apache/fop/fo/extensions Outline.java
Log:
Converted fox:outline to fo:bookmark. fox:label/fo:bookmark-title still to
be done.
Revision Changes Path
1.5 +30 -30 xml-fop/examples/fo/advanced/cid-fonts.fo
Index: cid-fonts.fo
===================================================================
RCS file: /home/cvs/xml-fop/examples/fo/advanced/cid-fonts.fo,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- cid-fonts.fo 2 Jan 2005 20:42:50 -0000 1.4
+++ cid-fonts.fo 4 Jan 2005 00:21:46 -0000 1.5
@@ -17,63 +17,63 @@
</fo:layout-master-set>
<fo:bookmark-tree>
- <fox:outline internal-destination="sec0">
+ <fo:bookmark internal-destination="sec0">
<fox:label>Adding Fonts to FOP</fox:label>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec1">
+ <fo:bookmark internal-destination="sec1">
<fox:label>Adding additional Type 1 fonts</fox:label>
- <fox:outline internal-destination="sec1-1">
+ <fo:bookmark internal-destination="sec1-1">
<fox:label>Generating a font metrics file</fox:label>
- </fox:outline>
- <fox:outline internal-destination="sec1-2">
+ </fo:bookmark>
+ <fo:bookmark internal-destination="sec1-2">
<fox:label>Register the fonts within FOP</fox:label>
- </fox:outline>
- </fox:outline>
+ </fo:bookmark>
+ </fo:bookmark>
- <fox:outline internal-destination="sec2">
+ <fo:bookmark internal-destination="sec2">
<fox:label>Adding additional TrueType fonts</fox:label>
- <fox:outline internal-destination="sec2-1">
+ <fo:bookmark internal-destination="sec2-1">
<fox:label>Generating a font metrics file</fox:label>
- </fox:outline>
- <fox:outline internal-destination="sec2-2">
+ </fo:bookmark>
+ <fo:bookmark internal-destination="sec2-2">
<fox:label>TrueType collections</fox:label>
- </fox:outline>
- <fox:outline internal-destination="sec2-3">
+ </fo:bookmark>
+ <fo:bookmark internal-destination="sec2-3">
<fox:label>Register the fonts within FOP</fox:label>
- </fox:outline>
+ </fo:bookmark>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec3">
+ <fo:bookmark internal-destination="sec3">
<fox:label>Embedding fonts in the PDF</fox:label>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec4">
+ <fo:bookmark internal-destination="sec4">
<fox:label>Example embedding MSGothic</fox:label>
- <fox:outline internal-destination="sec4-1">
+ <fo:bookmark internal-destination="sec4-1">
<fox:label>Setup CLASSPATH</fox:label>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec4-2">
+ <fo:bookmark internal-destination="sec4-2">
<fox:label>Create the metrics file</fox:label>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec4-3">
+ <fo:bookmark internal-destination="sec4-3">
<fox:label>Edit msgothic.xml</fox:label>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec4-4">
+ <fo:bookmark internal-destination="sec4-4">
<fox:label>Register the font with FOP</fox:label>
- </fox:outline>
- </fox:outline>
+ </fo:bookmark>
+ </fo:bookmark>
- <fox:outline internal-destination="sec5">
+ <fo:bookmark internal-destination="sec5">
<fox:label>Japanese Examples</fox:label>
- </fox:outline>
+ </fo:bookmark>
</fo:bookmark-tree>
<fo:page-sequence master-reference="A4">
1.6 +32 -32 xml-fop/examples/fo/basic/pdfoutline.fo
Index: pdfoutline.fo
===================================================================
RCS file: /home/cvs/xml-fop/examples/fo/basic/pdfoutline.fo,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- pdfoutline.fo 2 Jan 2005 20:42:50 -0000 1.5
+++ pdfoutline.fo 4 Jan 2005 00:21:46 -0000 1.6
@@ -60,65 +60,65 @@
<!-- bookmark section -->
<fo:bookmark-tree>
- <fox:outline internal-destination="sec1">
+ <fo:bookmark internal-destination="sec1">
<fox:label>What is FOP?</fox:label>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec2">
+ <fo:bookmark internal-destination="sec2">
<fox:label>Downloading FOP</fox:label>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec3">
+ <fo:bookmark internal-destination="sec3">
<fox:label>Running FOP</fox:label>
- <fox:outline internal-destination="sec3-1">
+ <fo:bookmark internal-destination="sec3-1">
<fox:label>Prerequisites</fox:label>
- <fox:outline internal-destination="sec3-1-1">
+ <fo:bookmark internal-destination="sec3-1-1">
<fox:label>Java 1.1</fox:label>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec3-1-2">
+ <fo:bookmark internal-destination="sec3-1-2">
<fox:label>XML Parser</fox:label>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec3-1-3">
+ <fo:bookmark internal-destination="sec3-1-3">
<fox:label>XSLT Processor</fox:label>
- </fox:outline>
+ </fo:bookmark>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec3-2">
+ <fo:bookmark internal-destination="sec3-2">
<fox:label>Starting FOP</fox:label>
- </fox:outline>
+ </fo:bookmark>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec4">
+ <fo:bookmark internal-destination="sec4">
<fox:label>Embedding FOP</fox:label>
- </fox:outline>
+ </fo:bookmark>
- <fox:outline internal-destination="sec5">
+ <fo:bookmark internal-destination="sec5">
<fox:label>What's Implemented?</fox:label>
- </fox:outline>
- <fox:outline internal-destination="sec6">
+ </fo:bookmark>
+ <fo:bookmark internal-destination="sec6">
<fox:label>Limitations</fox:label>
- </fox:outline>
- <fox:outline internal-destination="sec7">
+ </fo:bookmark>
+ <fo:bookmark internal-destination="sec7">
<fox:label>Bugs</fox:label>
- </fox:outline>
- <fox:outline internal-destination="sec8">
+ </fo:bookmark>
+ <fo:bookmark internal-destination="sec8">
<fox:label>Compiling FOP</fox:label>
- </fox:outline>
- <fox:outline internal-destination="sec9">
+ </fo:bookmark>
+ <fo:bookmark internal-destination="sec9">
<fox:label>Getting Involved</fox:label>
- </fox:outline>
- <fox:outline internal-destination="sec10">
+ </fo:bookmark>
+ <fo:bookmark internal-destination="sec10">
<fox:label>FOP Relevant Specifications</fox:label>
- </fox:outline>
- <fox:outline internal-destination="sec11">
+ </fo:bookmark>
+ <fo:bookmark internal-destination="sec11">
<fox:label>License</fox:label>
- </fox:outline>
+ </fo:bookmark>
</fo:bookmark-tree>
<!-- actual layout -->
1.10 +23 -23 xml-fop/src/java/org/apache/fop/area/BookmarkData.java
Index: BookmarkData.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/area/BookmarkData.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- BookmarkData.java 2 Jan 2005 20:42:50 -0000 1.9
+++ BookmarkData.java 4 Jan 2005 00:21:46 -0000 1.10
@@ -23,7 +23,7 @@
import java.util.HashMap;
import org.apache.fop.fo.pagination.bookmarks.BookmarkTree;
-import org.apache.fop.fo.extensions.Outline;
+import org.apache.fop.fo.pagination.bookmarks.Bookmark;
/**
* An instance of this class is either a PDF bookmark-tree and
@@ -33,8 +33,8 @@
public class BookmarkData extends OffDocumentItem implements Resolvable {
private ArrayList subData = new ArrayList();
- // bookmark label
- private String label = null;
+ // bookmark-title for this bookmark
+ private String bookmarkTitle = null;
// ID Reference for this bookmark
private String idRef;
@@ -57,8 +57,8 @@
whenToProcess = END_OF_DOC;
for (int count = 0; count < bookmarkTree.getBookmarks().size(); count++) {
- Outline out = (Outline)(bookmarkTree.getBookmarks()).get(count);
- addSubData(createBookmarkData(out));
+ Bookmark bkmk = (Bookmark)(bookmarkTree.getBookmarks()).get(count);
+ addSubData(createBookmarkData(bkmk));
}
}
@@ -100,21 +100,21 @@
}
/**
- * Set the label for this bookmark.
+ * Set the title for this bookmark.
*
- * @param l the string label
+ * @param title the bookmark title
*/
- public void setLabel(String l) {
- label = l;
+ public void setBookmarkTitle(String title) {
+ bookmarkTitle = title;
}
/**
- * Get the label for this bookmark object.
+ * Get the title for this bookmark object.
*
- * @return the label string
+ * @return the bookmark title
*/
- public String getLabel() {
- return label;
+ public String getBookmarkTitle() {
+ return bookmarkTitle;
}
/**
@@ -195,20 +195,20 @@
}
/**
- * Create and return the bookmark data for this outline.
+ * Create and return the bookmark data for this bookmark
* This creates a bookmark data with the destination
- * and adds all the data from child outlines.
+ * and adds all the data from child bookmarks
*
- * @param outline the Outline object for which a bookmark entry should be
+ * @param bookmark the Bookmark object for which a bookmark entry should be
* created
* @return the new bookmark data
*/
- private BookmarkData createBookmarkData(Outline outline) {
- BookmarkData data = new BookmarkData(outline.getInternalDestination());
- data.setLabel(outline.getLabel());
- for (int count = 0; count < outline.getOutlines().size(); count++) {
- Outline out = (Outline)(outline.getOutlines()).get(count);
- data.addSubData(createBookmarkData(out));
+ private BookmarkData createBookmarkData(Bookmark bookmark) {
+ BookmarkData data = new BookmarkData(bookmark.getInternalDestination());
+ data.setBookmarkTitle(bookmark.getBookmarkTitle());
+ for (int count = 0; count < bookmark.getChildBookmarks().size(); count++) {
+ Bookmark bkmk = (Bookmark)(bookmark.getChildBookmarks()).get(count);
+ data.addSubData(createBookmarkData(bkmk));
}
return data;
}
1.22 +3 -2 xml-fop/src/java/org/apache/fop/fo/Constants.java
Index: Constants.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/Constants.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- Constants.java 2 Jan 2005 20:42:50 -0000 1.21
+++ Constants.java 4 Jan 2005 00:21:46 -0000 1.22
@@ -114,7 +114,8 @@
int FO_TITLE = 55;
int FO_WRAPPER = 56;
int FO_BOOKMARK_TREE = 57;
- int FRM_OBJ_COUNT = 57;
+ int FO_BOOKMARK = 58;
+ int FRM_OBJ_COUNT = 58;
// Masks
int COMPOUND_SHIFT = 9;
1.10 +7 -0 xml-fop/src/java/org/apache/fop/fo/FOElementMapping.java
Index: FOElementMapping.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/FOElementMapping.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- FOElementMapping.java 2 Jan 2005 20:42:50 -0000 1.9
+++ FOElementMapping.java 4 Jan 2005 00:21:46 -0000 1.10
@@ -46,6 +46,7 @@
foObjs.put("declarations", new DeclarationsMaker());
foObjs.put("color-profile", new ColorProfileMaker());
foObjs.put("bookmark-tree", new BookmarkTreeMaker());
+ foObjs.put("bookmark", new BookmarkMaker());
foObjs.put("page-sequence", new PageSequenceMaker());
foObjs.put("layout-master-set", new LayoutMasterSetMaker());
foObjs.put("page-sequence-master",
@@ -149,6 +150,12 @@
static class BookmarkTreeMaker extends ElementMapping.Maker {
public FONode make(FONode parent) {
return new org.apache.fop.fo.pagination.bookmarks.BookmarkTree(parent);
+ }
+ }
+
+ static class BookmarkMaker extends ElementMapping.Maker {
+ public FONode make(FONode parent) {
+ return new org.apache.fop.fo.pagination.bookmarks.Bookmark(parent);
}
}
1.14 +10 -2 xml-fop/src/java/org/apache/fop/fo/PropertySets.java
Index: PropertySets.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/PropertySets.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- PropertySets.java 2 Jan 2005 20:42:50 -0000 1.13
+++ PropertySets.java 4 Jan 2005 00:21:46 -0000 1.14
@@ -202,7 +202,15 @@
elem.addProperty(Constants.PR_RENDERING_INTENT);
elem = elements[Constants.FO_BOOKMARK_TREE];
-// elem.addContent(Constants.FO_BOOKMARK);
+ elem.addContent(Constants.FO_BOOKMARK);
+
+ elem = elements[Constants.FO_BOOKMARK];
+// elem.addContent(Constants.FO_BOOKMARK_TITLE);
+ elem.addContent(Constants.FO_BOOKMARK);
+ elem.addProperties(CommonAccessibilityProperties);
+ elem.addProperty(Constants.PR_EXTERNAL_DESTINATION);
+ elem.addProperty(Constants.PR_INTERNAL_DESTINATION);
+ elem.addProperty(Constants.PR_STARTING_STATE);
elem = elements[Constants.FO_PAGE_SEQUENCE];
elem.addProperty(Constants.PR_COUNTRY);
1.6 +1 -8 xml-fop/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java
Index: ExtensionElementMapping.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/extensions/ExtensionElementMapping.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ExtensionElementMapping.java 2 Jan 2005 20:42:50 -0000 1.5
+++ ExtensionElementMapping.java 4 Jan 2005 00:21:46 -0000 1.6
@@ -44,14 +44,7 @@
protected void initialize() {
if (foObjs == null) {
foObjs = new HashMap();
- foObjs.put("outline", new O());
foObjs.put("label", new L());
- }
- }
-
- static class O extends ElementMapping.Maker {
- public FONode make(FONode parent) {
- return new Outline(parent);
}
}
1.2 +5 -7 xml-fop/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTree.java
Index: BookmarkTree.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/fo/pagination/bookmarks/BookmarkTree.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BookmarkTree.java 2 Jan 2005 20:42:51 -0000 1.1
+++ BookmarkTree.java 4 Jan 2005 00:21:46 -0000 1.2
@@ -24,8 +24,6 @@
import org.xml.sax.Locator;
import org.apache.fop.apps.FOPException;
-import org.apache.fop.fo.extensions.ExtensionElementMapping;
-import org.apache.fop.fo.extensions.Outline;
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.FObj;
import org.apache.fop.fo.PropertyList;
@@ -52,7 +50,7 @@
* @see org.apache.fop.fo.FONode#addChildNode(FONode)
*/
protected void addChildNode(FONode obj) {
- if (obj instanceof Outline) {
+ if (obj instanceof Bookmark) {
bookmarks.add(obj);
}
}
@@ -62,7 +60,7 @@
*/
protected void endOfNode() throws FOPException {
if (bookmarks == null) {
- missingChildElementError("(fox:outline+)");
+ missingChildElementError("(fo:bookmark+)");
}
((Root) parent).setBookmarkTree(this);
}
@@ -73,8 +71,8 @@
*/
protected void validateChildNode(Locator loc, String nsURI, String localName)
throws ValidationException {
- if (!(nsURI == ExtensionElementMapping.URI &&
- localName.equals("outline"))) {
+ if (!(nsURI == FO_URI &&
+ localName.equals("bookmark"))) {
invalidChildError(loc, nsURI, localName);
}
}
1.1 xml-fop/src/java/org/apache/fop/fo/pagination/bookmarks/Bookmark.java
Index: Bookmark.java
===================================================================
/*
* Copyright 1999-2004 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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* $Id $ */
package org.apache.fop.fo.pagination.bookmarks;
import java.util.ArrayList;
import org.xml.sax.Attributes;
import org.xml.sax.Locator;
import org.apache.fop.apps.FOPException;
import org.apache.fop.fo.FObj;
import org.apache.fop.fo.FONode;
import org.apache.fop.fo.PropertyList;
import org.apache.fop.fo.extensions.Label;
/**
* The fo:bookmark formatting object, first introduced in the
* XSL 1.1 WD. Prototype version only, subject to change as
* XSL 1.1 WD evolves.
*/
public class Bookmark extends FObj {
private Label bookmarkTitle;
private ArrayList childBookmarks = new ArrayList();
private String internalDestination;
private String externalDestination;
/**
* Create a new bookmark object.
*
* @param parent the parent fo node
*/
public Bookmark(FONode parent) {
super(parent);
}
/**
* The attributes on the bookmark object are the internal and external
* destination. One of these is required.
*
* @see org.apache.fop.fo.FObj#processNode
* @todo to include all properties of fo:bookmark
*/
public void processNode(String elementName, Locator locator,
Attributes attlist, PropertyList propertyList) throws FOPException
{
internalDestination =
attlist.getValue("internal-destination");
externalDestination =
attlist.getValue("external-destination");
if (externalDestination != null && !externalDestination.equals("")) {
getLogger().warn("fo:bookmark external-destination not supported currently.");
}
if (internalDestination == null || internalDestination.equals("")) {
getLogger().warn("fo:bookmark requires an internal-destination.");
}
}
/**
* @see org.apache.fop.fo.FONode#addChildNode(FONode)
*/
protected void addChildNode(FONode obj) {
if (obj instanceof Label) {
bookmarkTitle = (Label)obj;
} else if (obj instanceof Bookmark) {
childBookmarks.add(obj);
}
}
/**
* Get the bookmark title for this bookmark
*
* @return the bookmark title string or an empty string if not found
*/
public String getBookmarkTitle() {
return bookmarkTitle == null ? "" : bookmarkTitle.toString();
}
public String getInternalDestination() {
return internalDestination;
}
public String getExternalDestination() {
return externalDestination;
}
public ArrayList getChildBookmarks() {
return childBookmarks;
}
/**
* @see org.apache.fop.fo.FObj#getName()
*/
public String getName() {
return "fo:bookmark";
}
/**
* @see org.apache.fop.fo.FObj#getNameId()
*/
public int getNameId() {
return FO_BOOKMARK;
}
}
1.65 +2 -2 xml-fop/src/java/org/apache/fop/render/pdf/PDFRenderer.java
Index: PDFRenderer.java
===================================================================
RCS file: /home/cvs/xml-fop/src/java/org/apache/fop/render/pdf/PDFRenderer.java,v
retrieving revision 1.64
retrieving revision 1.65
diff -u -r1.64 -r1.65
--- PDFRenderer.java 28 Dec 2004 13:54:30 -0000 1.64
+++ PDFRenderer.java 4 Jan 2005 00:21:47 -0000 1.65
@@ -311,10 +311,10 @@
if (parentBookmarkItem == null) {
PDFOutline outlineRoot = pdfDoc.getOutlineRoot();
pdfOutline = pdfDoc.getFactory().makeOutline(outlineRoot,
- bookmarkItem.getLabel(), intDest, yoffset);
+ bookmarkItem.getBookmarkTitle(), intDest, yoffset);
} else {
pdfOutline = pdfDoc.getFactory().makeOutline(parentBookmarkItem,
- bookmarkItem.getLabel(), intDest, yoffset);
+ bookmarkItem.getBookmarkTitle(), intDest, yoffset);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org