Browse Source

Merged revisions 718557,718570,718591 via svnmerge from

https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk

........
  r718557 | vhennebert | 2008-11-18 11:10:19 +0000 (Tue, 18 Nov 2008) | 2 lines
  
  Improved the FAQ by creating a separate entry for the problem about keep-together on table-cell, and the added support for inline keeps in 0.95
........
  r718570 | jeremias | 2008-11-18 13:16:32 +0000 (Tue, 18 Nov 2008) | 1 line
  
  Update conference ads.
........
  r718591 | acumiskey | 2008-11-18 13:56:52 +0000 (Tue, 18 Nov 2008) | 2 lines
  
  TextHandler interface changes, the Graphics2D implementation is now passed to drawString().
........


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AFPGOCAResources@718594 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-1_0
Adrian Cumiskey 15 years ago
parent
commit
1eaf6721d4

BIN
lib/xmlgraphics-commons-1.4svn.jar View File


+ 20
- 10
src/documentation/content/xdocs/faq.xml View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -639,15 +639,25 @@ Check the following:</p>
<link href="http://www.mulberrytech.com/xsl/xsl-list/">XSL list
archive</link> for how to perform these tasks.
</p>
<p>
If your text is not hyphenated at all and overflows the cell, please check
if you've specified <code>keep-together="always"</code> on the table-cell
or one of its parent elements. <code>keep-together="always"</code> implicitely
also sets <code>keep-together.within-line="always"</code> which forbids FOP
to break the text into multiple lines. This is important as FOP supports inline-level
keeps since version 0.94. It's a good idea not to use the shorthand
<code>keep-together="always"</code> at all!
</p>
</answer>
</faq>
<faq id="table-cell-wrap">
<question>The contents of table cells don’t wrap</question>
<answer>
<p>You probably have <code>keep-together="always"</code> set on the table cell. See <link
href="#keep-together">next question</link>.</p>
</answer>
</faq>
<faq id="keep-together">
<question>FOP 0.95 and FOP 0.94 behave differently when <code>keep-together="always"</code>
is set on table cells</question>
<answer>
<p>Support for inline-level keeps has been added in FOP 0.95, and setting
<code>keep-together="always"</code> also implicitly sets
<code>keep-together.within-line="always"</code>, which forbids FOP
to break the text into multiple lines. Set
<code>keep-together.within-column="always"</code> on table-cell instead. It’s a good idea
not to use the shorthand <code>keep-together="always"</code> at all!</p>
</answer>
</faq>
<faq id="row-height-constraint">

+ 4
- 6
src/documentation/skinconf.xml View File

@@ -369,19 +369,17 @@ which will be used to configure the chosen Forrest skin.
<width>88</width>
<height>31</height>
</credit>
<!--
<credit box-location="alt2">
<name>ApacheCon Europe 2008</name>
<name>ApacheCon Europe 2009</name>
<url>http://eu.apachecon.com/</url>
<image>http://apache.org/ads/ApacheCon/2008-europe-125x125.png</image>
<image>http://apache.org/ads/ApacheCon/2009-europe-125x125.png</image>
<width>125</width>
<height>125</height>
</credit>
-->
<credit box-location="alt2">
<name>ApacheCon US 2008</name>
<name>ApacheCon US 2009</name>
<url>http://us.apachecon.com/</url>
<image>http://apache.org/ads/ApacheCon/2008-usa-125x125.png</image>
<image>http://apache.org/ads/ApacheCon/2009-usa-125x125.png</image>
<width>125</width>
<height>125</height>
</credit>

+ 8
- 8
src/java/org/apache/fop/render/ps/AbstractPSTranscoder.java View File

@@ -25,21 +25,20 @@ import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import org.w3c.dom.Document;
import org.w3c.dom.svg.SVGLength;

import org.apache.avalon.framework.configuration.Configuration;
import org.apache.batik.bridge.BridgeContext;
import org.apache.batik.bridge.UnitProcessor;
import org.apache.batik.transcoder.TranscoderException;
import org.apache.batik.transcoder.TranscoderOutput;
import org.apache.batik.transcoder.image.ImageTranscoder;
import org.apache.xmlgraphics.java2d.ps.AbstractPSDocumentGraphics2D;
import org.apache.xmlgraphics.java2d.TextHandler;

import org.apache.fop.fonts.FontInfo;
import org.apache.fop.fonts.FontSetup;
import org.apache.fop.svg.AbstractFOPTranscoder;
import org.apache.xmlgraphics.java2d.TextHandler;
import org.apache.xmlgraphics.java2d.ps.AbstractPSDocumentGraphics2D;
import org.apache.xmlgraphics.ps.PSGenerator;
import org.w3c.dom.Document;
import org.w3c.dom.svg.SVGLength;

/**
* This class enables to transcode an input to a PostScript document.
@@ -70,7 +69,7 @@ import org.apache.fop.svg.AbstractFOPTranscoder;
*/
public abstract class AbstractPSTranscoder extends AbstractFOPTranscoder {

private Configuration cfg = null;
private final Configuration cfg = null;
protected AbstractPSDocumentGraphics2D graphics = null;

/**
@@ -99,7 +98,8 @@ public abstract class AbstractPSTranscoder extends AbstractFOPTranscoder {
FontInfo fontInfo = new FontInfo();
//TODO Do custom font configuration here somewhere/somehow
FontSetup.setup(fontInfo);
graphics.setCustomTextHandler(new NativeTextHandler(graphics, fontInfo));
PSGenerator generator = graphics.getPSGenerator();
graphics.setCustomTextHandler(new NativeTextHandler(generator, fontInfo));
}

super.transcode(document, uri, output);

+ 13
- 5
src/java/org/apache/fop/render/ps/NativeTextHandler.java View File

@@ -19,6 +19,7 @@

package org.apache.fop.render.ps;

import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.AffineTransform;
import java.io.IOException;
@@ -37,7 +38,7 @@ import org.apache.xmlgraphics.ps.PSGenerator;
*/
public class NativeTextHandler implements PSTextHandler {

private PSGraphics2D g2d;
private final PSGenerator gen;

/** FontInfo containing all available fonts */
protected FontInfo fontInfo;
@@ -59,8 +60,8 @@ public class NativeTextHandler implements PSTextHandler {
* @param g2d the PSGraphics2D instance this instances is used by
* @param fontInfo the FontInfo object with all available fonts
*/
public NativeTextHandler(PSGraphics2D g2d, FontInfo fontInfo) {
this.g2d = g2d;
public NativeTextHandler(PSGenerator gen, FontInfo fontInfo) {
this.gen = gen;
if (fontInfo != null) {
this.fontInfo = fontInfo;
} else {
@@ -83,7 +84,7 @@ public class NativeTextHandler implements PSTextHandler {
}

private PSGenerator getPSGenerator() {
return this.g2d.getPSGenerator();
return this.gen;
}

/** {@inheritDoc} */
@@ -98,12 +99,19 @@ public class NativeTextHandler implements PSTextHandler {
//nop
}

/** {@inheritDoc} */
public void drawString(String text, float x, float y) throws IOException {
// TODO Remove me after removing the deprecated method in TextHandler.
throw new UnsupportedOperationException("Deprecated method!");
}

/**
* Draw a string to the PostScript document. The text is painted using
* text operations.
* {@inheritDoc}
*/
public void drawString(String s, float x, float y) throws IOException {
public void drawString(Graphics2D g, String s, float x, float y) throws IOException {
PSGraphics2D g2d = (PSGraphics2D)g;
g2d.preparePainting();
if (this.overrideFont == null) {
java.awt.Font awtFont = g2d.getFont();

+ 8
- 9
src/java/org/apache/fop/render/ps/PSSVGHandler.java View File

@@ -24,18 +24,12 @@ import java.awt.geom.AffineTransform;
import java.io.IOException;
import java.util.Map;

import org.w3c.dom.Document;

import org.apache.avalon.framework.configuration.Configuration;
import org.apache.batik.bridge.BridgeContext;
import org.apache.batik.bridge.GVTBuilder;
import org.apache.batik.gvt.GraphicsNode;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.apache.xmlgraphics.java2d.ps.PSGraphics2D;
import org.apache.xmlgraphics.ps.PSGenerator;

import org.apache.fop.fonts.FontInfo;
import org.apache.fop.render.AbstractGenericSVGHandler;
import org.apache.fop.render.Renderer;
@@ -43,6 +37,9 @@ import org.apache.fop.render.RendererContext;
import org.apache.fop.render.RendererContextConstants;
import org.apache.fop.svg.SVGEventProducer;
import org.apache.fop.svg.SVGUserAgent;
import org.apache.xmlgraphics.java2d.ps.PSGraphics2D;
import org.apache.xmlgraphics.ps.PSGenerator;
import org.w3c.dom.Document;

/**
* PostScript XML handler for SVG. Uses Apache Batik for SVG processing.
@@ -262,7 +259,9 @@ public class PSSVGHandler extends AbstractGenericSVGHandler
NativeTextHandler nativeTextHandler = null;
BridgeContext ctx = new BridgeContext(ua);
if (!strokeText) {
nativeTextHandler = new NativeTextHandler(graphics, psInfo.getFontInfo());
PSGenerator generator = graphics.getPSGenerator();
FontInfo fontInfo = psInfo.getFontInfo();
nativeTextHandler = new NativeTextHandler(generator, fontInfo);
graphics.setCustomTextHandler(nativeTextHandler);
PSTextPainter textPainter = new PSTextPainter(nativeTextHandler);
ctx.setTextPainter(textPainter);
@@ -283,8 +282,8 @@ public class PSSVGHandler extends AbstractGenericSVGHandler
float w = (float)ctx.getDocumentSize().getWidth() * 1000f;
float h = (float)ctx.getDocumentSize().getHeight() * 1000f;

float sx = psInfo.getWidth() / (float)w;
float sy = psInfo.getHeight() / (float)h;
float sx = psInfo.getWidth() / w;
float sy = psInfo.getHeight() / h;

ctx = null;
builder = null;

Loading…
Cancel
Save