diff options
author | Vincent Hennebert <vhennebert@apache.org> | 2013-07-29 21:45:20 +0000 |
---|---|---|
committer | Vincent Hennebert <vhennebert@apache.org> | 2013-07-29 21:45:20 +0000 |
commit | f8e822efe1de8bd8192dbb8ff035b9a79f876614 (patch) | |
tree | 8d38f873dd101e6ed0c2ba3b4dfa29e1eb0fdc60 /src/java/org/apache/fop/render/java2d/Java2DFontMetrics.java | |
parent | c0b99ad44d0e1409008886e2f687c46f4ac05d9d (diff) | |
download | xmlgraphics-fop-f8e822efe1de8bd8192dbb8ff035b9a79f876614.tar.gz xmlgraphics-fop-f8e822efe1de8bd8192dbb8ff035b9a79f876614.zip |
Directly use FOP fonts to lay out SVG images for PDF, PS and AFP outputs.
The metrics are now taken from FOP configured fonts and no longer from AWT equivalents. That avoids discrepancies in case AWT and FOP use slightly different fonts, or if the font is not installed on the system. That actually also avoids having to install the font on the system.
FOP is also used for the primary layout of text (prior to SVG-specific transforms like translation or rotation) for consistency between SVG and XSL-FO.
This is a joint work from Peter Hancock and myself.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_FopFontsForSVG@1508208 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache/fop/render/java2d/Java2DFontMetrics.java')
-rw-r--r-- | src/java/org/apache/fop/render/java2d/Java2DFontMetrics.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/java/org/apache/fop/render/java2d/Java2DFontMetrics.java b/src/java/org/apache/fop/render/java2d/Java2DFontMetrics.java index fc4af3574..5e681e9e2 100644 --- a/src/java/org/apache/fop/render/java2d/Java2DFontMetrics.java +++ b/src/java/org/apache/fop/render/java2d/Java2DFontMetrics.java @@ -223,6 +223,26 @@ public class Java2DFontMetrics { return xHeight * 1000; } + public int getUnderlinePosition(String family, int style, int size) { + setFont(family, style, size); + return -Math.round(lineMetrics.getUnderlineOffset()); + } + + public int getUnderlineThickness(String family, int style, int size) { + setFont(family, style, size); + return Math.round(lineMetrics.getUnderlineThickness()); + } + + public int getStrikeoutPosition(String family, int style, int size) { + setFont(family, style, size); + return -Math.round(lineMetrics.getStrikethroughOffset()); + } + + public int getStrikeoutThickness(String family, int style, int size) { + setFont(family, style, size); + return Math.round(lineMetrics.getStrikethroughThickness()); + } + /** * Returns width (in 1/1000ths of point size) of character at * code point i |