diff options
author | Keiron Liddle <keiron@apache.org> | 2001-05-18 10:03:18 +0000 |
---|---|---|
committer | Keiron Liddle <keiron@apache.org> | 2001-05-18 10:03:18 +0000 |
commit | c0459ac51d9f792eddadd1c44785722db686bf70 (patch) | |
tree | 7136bcf8d651be3e7b4f639432bdadb6e58e3c49 /src/org/apache/fop/svg | |
parent | ac2ee9f42b1215418973993c94ec92371c6ac62a (diff) | |
download | xmlgraphics-fop-c0459ac51d9f792eddadd1c44785722db686bf70.tar.gz xmlgraphics-fop-c0459ac51d9f792eddadd1c44785722db686bf70.zip |
now supports size setting properly
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@194256 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/org/apache/fop/svg')
-rw-r--r-- | src/org/apache/fop/svg/PDFDocumentGraphics2D.java | 132 | ||||
-rw-r--r-- | src/org/apache/fop/svg/PDFGraphics2D.java | 2 | ||||
-rw-r--r-- | src/org/apache/fop/svg/PDFTranscoder.java | 311 |
3 files changed, 138 insertions, 307 deletions
diff --git a/src/org/apache/fop/svg/PDFDocumentGraphics2D.java b/src/org/apache/fop/svg/PDFDocumentGraphics2D.java index 8f93b1034..06bd07009 100644 --- a/src/org/apache/fop/svg/PDFDocumentGraphics2D.java +++ b/src/org/apache/fop/svg/PDFDocumentGraphics2D.java @@ -7,101 +7,123 @@ package org.apache.fop.svg; import org.apache.fop.pdf.*; -import org.apache.fop.layout.*; import org.apache.fop.fonts.*; -import org.apache.fop.render.pdf.*; -import org.apache.fop.image.*; -import org.apache.fop.datatypes.ColorSpace; -import org.apache.batik.ext.awt.g2d.*; - -import java.text.AttributedCharacterIterator; -import java.awt.*; +import java.awt.Graphics; import java.awt.Font; import java.awt.Image; -import java.awt.image.*; -import java.awt.font.*; -import java.awt.geom.*; -import java.awt.image.renderable.*; -import java.io.*; +import java.awt.Color; +import java.io.OutputStream; +import java.io.IOException; -import java.util.Map; +import org.apache.batik.ext.awt.g2d.GraphicContext; /** - * This concrete implementation of <tt>AbstractGraphics2D</tt> is a - * simple help to programmers to get started with their own - * implementation of <tt>Graphics2D</tt>. - * <tt>DefaultGraphics2D</tt> implements all the abstract methods - * is <tt>AbstractGraphics2D</tt> and makes it easy to start - * implementing a <tt>Graphic2D</tt> piece-meal. + * This class is a wrapper for the <tt>PDFGraphics2D</tt> that + * is used to create a full document around the pdf rendering from + * <tt>PDFGraphics2D</tt>. * - * @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a> + * @author <a href="mailto:keiron@aftexsw.com">Keiron Liddle</a> * @version $Id$ - * @see org.apache.batik.ext.awt.g2d.AbstractGraphics2D + * @see org.apache.fop.svg.PDFGraphics2D */ public class PDFDocumentGraphics2D extends PDFGraphics2D { - OutputStream stream; + OutputStream stream; - PDFStream pdfStream; - int width; - int height; + PDFStream pdfStream; + int width; + int height; /** - * Create a new PDFGraphics2D with the given pdf document info. - * This is used to create a Graphics object for use inside an already - * existing document. - * Maybe this could be handled as a subclass (PDFDocumentGraphics2d) + * Create a new PDFDocumentGraphics2D. + * This is used to create a new pdf document of the given height + * and width. + * The resulting document is written to the stream after rendering. + * + * @param textAsShapes set this to true so that text will be rendered + * using curves and not the font. + * @param stream the stream that the final document should be written to. + * @param width the width of the document + * @param height the height of the document */ - public PDFDocumentGraphics2D(boolean textAsShapes, OutputStream stream, int width, int height) - { + public PDFDocumentGraphics2D(boolean textAsShapes, + OutputStream stream, int width, int height) { super(textAsShapes); standalone = true; - this.stream = stream; + this.stream = stream; this.pdfDoc = new PDFDocument(); this.pdfDoc.setProducer("FOP SVG Renderer"); pdfStream = this.pdfDoc.makeStream(); - this.width = width; - this.height = height; + this.width = width; + this.height = height; - currentFontName = ""; - currentFontSize = 0; - currentYPosition = 0; - currentXPosition = 0; -// fontState = fs; + currentFontName = ""; + currentFontSize = 0; + currentYPosition = 0; + currentXPosition = 0; + // fontState = fs; currentStream.write("1 0 0 -1 0 " + height + " cm\n"); // end part /* FontSetup.addToResources(this.pdfDoc, fontInfo); - */ + */ + + } + /** + * Set the dimensions of the svg document that will be drawn. + * This is useful if the dimensions of the svg document are different + * from the pdf document that is to be created. + * The result is scaled so that the svg fits correctly inside the pdf document. + */ + public void setSVGDimension(float w, float h) { + PDFNumber pdfNumber = new PDFNumber(); + currentStream.write("" + pdfNumber.doubleOut(width / w) + " 0 0 " + pdfNumber.doubleOut(height / h) + " 0 0 cm\n"); } - public void finish() throws IOException - { + /** + * Set the background of the pdf document. + * This is used to set the background for the pdf document + * Rather than leaving it as the default white. + */ + public void setBackgroundColor(Color col) { + Color c = col; + currentColour = new PDFColor(c.getRed(), c.getGreen(), c.getBlue()); + currentStream.write("q\n"); + currentStream.write(currentColour.getColorSpaceOut(true)); + + currentStream.write("0 0 " + width + " " + height + " re\n"); + + currentStream.write("f\n"); + currentStream.write("Q\n"); + } + + /** + * The rendering process has finished. + * This should be called after the rendering has completed as there is + * no other indication it is complete. + * This will then write the results to the output stream. + */ + public void finish() throws IOException { pdfStream.add(getString()); PDFResources pdfResources = this.pdfDoc.getResources(); - PDFPage currentPage = this.pdfDoc.makePage(pdfResources, pdfStream, - width, - height, null); + PDFPage currentPage = + this.pdfDoc.makePage(pdfResources, pdfStream, width, + height, null); this.pdfDoc.output(stream); - } - - public String getString() { - return currentStream.toString(); - } + } - public void setGraphicContext(GraphicContext c) - { + public void setGraphicContext(GraphicContext c) { gc = c; } /** * This constructor supports the create method */ - public PDFDocumentGraphics2D(PDFDocumentGraphics2D g){ + public PDFDocumentGraphics2D(PDFDocumentGraphics2D g) { super(g); } @@ -111,7 +133,7 @@ public class PDFDocumentGraphics2D extends PDFGraphics2D { * @return a new graphics context that is a copy of * this graphics context. */ - public Graphics create(){ + public Graphics create() { return new PDFDocumentGraphics2D(this); } diff --git a/src/org/apache/fop/svg/PDFGraphics2D.java b/src/org/apache/fop/svg/PDFGraphics2D.java index 3ac1cd329..544996af5 100644 --- a/src/org/apache/fop/svg/PDFGraphics2D.java +++ b/src/org/apache/fop/svg/PDFGraphics2D.java @@ -35,7 +35,7 @@ import java.util.Map; * is <tt>AbstractGraphics2D</tt> and makes it easy to start * implementing a <tt>Graphic2D</tt> piece-meal. * - * @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a> + * @author <a href="mailto:keiron@aftexsw.com">Keiron Liddle</a> * @version $Id$ * @see org.apache.batik.ext.awt.g2d.AbstractGraphics2D */ diff --git a/src/org/apache/fop/svg/PDFTranscoder.java b/src/org/apache/fop/svg/PDFTranscoder.java index 1079a9fab..8b91723ca 100644 --- a/src/org/apache/fop/svg/PDFTranscoder.java +++ b/src/org/apache/fop/svg/PDFTranscoder.java @@ -67,6 +67,7 @@ import org.apache.batik.transcoder.keys.PaintKey; import org.apache.batik.transcoder.keys.Rectangle2DKey; import org.apache.batik.transcoder.keys.StringKey; import org.apache.batik.transcoder.*; +import org.apache.batik.transcoder.image.*; import org.apache.batik.util.SVGConstants; @@ -96,7 +97,7 @@ import org.w3c.dom.svg.SVGSVGElement; import org.apache.batik.gvt.renderer.StaticRendererFactory; /** - * This class enables to transcode an input to an image of any format. + * This class enables to transcode an input to a pdf document. * * <p>Two transcoding hints (<tt>KEY_WIDTH</tt> and * <tt>KEY_HEIGHT</tt>) can be used to respectively specify the image @@ -119,7 +120,7 @@ import org.apache.batik.gvt.renderer.StaticRendererFactory; * stylesheet, and <tt>KEY_PIXEL_TO_MM</tt> to specify the pixel to * millimeter conversion factor. * - * @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a> + * @author <a href="mailto:keiron@aftexsw.com">Keiron Liddle</a> * @version $Id$ */ public class PDFTranscoder extends XMLAbstractTranscoder { @@ -133,8 +134,7 @@ public class PDFTranscoder extends XMLAbstractTranscoder { public PDFTranscoder() { hints.put(KEY_DOCUMENT_ELEMENT_NAMESPACE_URI, SVGConstants.SVG_NAMESPACE_URI); - hints.put(KEY_DOCUMENT_ELEMENT, - SVGConstants.SVG_SVG_TAG); + hints.put(KEY_DOCUMENT_ELEMENT, SVGConstants.SVG_SVG_TAG); hints.put(KEY_DOM_IMPLEMENTATION, SVGDOMImplementation.getDOMImplementation()); } @@ -147,22 +147,21 @@ public class PDFTranscoder extends XMLAbstractTranscoder { * @param output the ouput where to transcode * @exception TranscoderException if an error occured while transcoding */ - protected void transcode(Document document, - String uri, - TranscoderOutput output) - throws TranscoderException { + protected void transcode(Document document, String uri, + TranscoderOutput output) throws TranscoderException { if (!(document instanceof SVGOMDocument)) { throw new TranscoderException( - Messages.formatMessage("notsvg", null)); + Messages.formatMessage("notsvg", null)); } - SVGDocument svgDoc = (SVGDocument)document; + SVGDocument svgDoc = (SVGDocument) document; SVGSVGElement root = svgDoc.getRootElement(); // initialize the SVG document with the appropriate context - String parserClassname = (String)hints.get(KEY_XML_PARSER_CLASSNAME); + String parserClassname = + (String) hints.get(KEY_XML_PARSER_CLASSNAME); DefaultSVGContext svgCtx = new DefaultSVGContext(); svgCtx.setPixelToMM(userAgent.getPixelToMM()); - ((SVGOMDocument)document).setSVGContext(svgCtx); + ((SVGOMDocument) document).setSVGContext(svgCtx); // build the GVT tree GVTBuilder builder = new GVTBuilder(); @@ -176,19 +175,19 @@ public class PDFTranscoder extends XMLAbstractTranscoder { throw new TranscoderException(ex); } // get the 'width' and 'height' attributes of the SVG document - float docWidth = (float)ctx.getDocumentSize().getWidth(); - float docHeight = (float)ctx.getDocumentSize().getHeight(); + float docWidth = (float) ctx.getDocumentSize().getWidth(); + float docHeight = (float) ctx.getDocumentSize().getHeight(); ctx = null; builder = null; // compute the image's width and height according the hints float imgWidth = -1; - if (hints.containsKey(KEY_WIDTH)) { - imgWidth = ((Float)hints.get(KEY_WIDTH)).floatValue(); + if (hints.containsKey(ImageTranscoder.KEY_WIDTH)) { + imgWidth = ((Float) hints.get(ImageTranscoder.KEY_WIDTH)).floatValue(); } float imgHeight = -1; - if (hints.containsKey(KEY_HEIGHT)) { - imgHeight = ((Float)hints.get(KEY_HEIGHT)).floatValue(); + if (hints.containsKey(ImageTranscoder.KEY_HEIGHT)) { + imgHeight = ((Float) hints.get(ImageTranscoder.KEY_HEIGHT)).floatValue(); } float width, height; if (imgWidth > 0 && imgHeight > 0) { @@ -224,12 +223,12 @@ public class PDFTranscoder extends XMLAbstractTranscoder { // we want to keep the document size ratio float d = Math.max(docWidth, docHeight); float dd = Math.max(width, height); - float scale = dd/d; + float scale = dd / d; Px = AffineTransform.getScaleInstance(scale, scale); } // take the AOI into account if any - if (hints.containsKey(KEY_AOI)) { - Rectangle2D aoi = (Rectangle2D)hints.get(KEY_AOI); + if (hints.containsKey(ImageTranscoder.KEY_AOI)) { + Rectangle2D aoi = (Rectangle2D) hints.get(ImageTranscoder.KEY_AOI); // transform the AOI into the image's coordinate system aoi = Px.createTransformedShape(aoi).getBounds2D(); AffineTransform Mx = new AffineTransform(); @@ -244,48 +243,28 @@ public class PDFTranscoder extends XMLAbstractTranscoder { Px.preConcatenate(Mx); } // prepare the image to be painted - int w = (int)width; - int h = (int)height; - - PDFDocumentGraphics2D graphics = new PDFDocumentGraphics2D(true, output.getOutputStream(), w, h); - // GraphicsNodeRenderContext rc = getRenderContext(); - graphics.setGraphicContext(new org.apache.batik.ext.awt.g2d.GraphicContext()); + int w = (int) width; + int h = (int) height; + + PDFDocumentGraphics2D graphics = new PDFDocumentGraphics2D(true, + output.getOutputStream(), w, h); + graphics.setSVGDimension(docWidth, docHeight); + if (hints.containsKey(ImageTranscoder.KEY_BACKGROUND_COLOR)) { + graphics.setBackgroundColor((Color) hints.get(ImageTranscoder.KEY_BACKGROUND_COLOR)); + } + // GraphicsNodeRenderContext rc = getRenderContext(); + graphics.setGraphicContext( + new org.apache.batik.ext.awt.g2d.GraphicContext()); graphics.setRenderingHints(rc.getRenderingHints()); gvtRoot.paint(graphics, rc); try { - graphics.finish(); - } catch (Exception ex) { - ex.printStackTrace(); - throw new TranscoderException(ex); - } - /* - // paint the SVG document using the bridge package - // create the appropriate renderer - ImageRenderer renderer = rendFactory.createImageRenderer(); - renderer.updateOffScreen(w, h); - renderer.setTransform(Px); - renderer.setTree(gvtRoot); - gvtRoot = null; // We're done with it... - - try { - // now we are sure that the aoi is the image size - Shape raoi = new Rectangle2D.Float(0, 0, width, height); - // Warning: the renderer's AOI must be in user space - renderer.repaint(Px.createInverse().createTransformedShape(raoi)); - BufferedImage rend = renderer.getOffScreen(); - renderer = null; // We're done with it... - - // BufferedImage dest = createImage(w, h); - - //Graphics2D g2d = GraphicsUtil.createGraphics(dest); - - //g2d.drawRenderedImage(rend, new AffineTransform()); + graphics.finish(); } catch (Exception ex) { + ex.printStackTrace(); throw new TranscoderException(ex); } - */ } public GraphicsNodeRenderContext getRenderContext() { @@ -293,28 +272,25 @@ public class PDFTranscoder extends XMLAbstractTranscoder { if (nodeRenderContext == null) { RenderingHints hints = new RenderingHints(null); hints.put(RenderingHints.KEY_ANTIALIASING, - RenderingHints.VALUE_ANTIALIAS_ON); + RenderingHints.VALUE_ANTIALIAS_ON); hints.put(RenderingHints.KEY_INTERPOLATION, - RenderingHints.VALUE_INTERPOLATION_BILINEAR); + RenderingHints.VALUE_INTERPOLATION_BILINEAR); FontRenderContext fontRenderContext = - new FontRenderContext(new AffineTransform(), true, true); + new FontRenderContext(new AffineTransform(), true, + true); TextPainter textPainter = new StrokingTextPainter(); GraphicsNodeRableFactory gnrFactory = - new ConcreteGraphicsNodeRableFactory(); - - nodeRenderContext = - new GraphicsNodeRenderContext(new AffineTransform(), - null, - hints, - fontRenderContext, - textPainter, - gnrFactory); - nodeRenderContext.setTextPainter(textPainter); - } + new ConcreteGraphicsNodeRableFactory(); + + nodeRenderContext = new GraphicsNodeRenderContext( + new AffineTransform(), null, hints, + fontRenderContext, textPainter, gnrFactory); + nodeRenderContext.setTextPainter(textPainter); + } return nodeRenderContext; } @@ -327,8 +303,8 @@ public class PDFTranscoder extends XMLAbstractTranscoder { * @param domImpl the DOM Implementation (not used) * @param parserClassname the XML parser classname */ - protected DocumentFactory createDocumentFactory(DOMImplementation domImpl, - String parserClassname) { + protected DocumentFactory createDocumentFactory( + DOMImplementation domImpl, String parserClassname) { return new SAXSVGDocumentFactory(parserClassname); } @@ -375,7 +351,8 @@ public class PDFTranscoder extends XMLAbstractTranscoder { */ public void displayMessage(String message) { try { - getErrorHandler().warning(new TranscoderException(message)); + getErrorHandler().warning( + new TranscoderException(message)); } catch (TranscoderException ex) { throw new RuntimeException(); } @@ -386,8 +363,9 @@ public class PDFTranscoder extends XMLAbstractTranscoder { * <tt>TranscodingHints</tt> or 0.3528 if any. */ public float getPixelToMM() { - if (getTranscodingHints().containsKey(KEY_PIXEL_TO_MM)) { - return ((Float)getTranscodingHints().get(KEY_PIXEL_TO_MM)).floatValue(); + if (getTranscodingHints().containsKey(ImageTranscoder.KEY_PIXEL_TO_MM)) { + return ( (Float) getTranscodingHints().get( + ImageTranscoder.KEY_PIXEL_TO_MM)).floatValue(); } else { // return 0.3528f; // 72 dpi return 0.26458333333333333333333333333333f; // 96dpi @@ -399,8 +377,8 @@ public class PDFTranscoder extends XMLAbstractTranscoder { * <tt>TranscodingHints</tt> or "en" (english) if any. */ public String getLanguages() { - if (getTranscodingHints().containsKey(KEY_LANGUAGE)) { - return (String)getTranscodingHints().get(KEY_LANGUAGE); + if (getTranscodingHints().containsKey(ImageTranscoder.KEY_LANGUAGE)) { + return (String) getTranscodingHints().get(ImageTranscoder.KEY_LANGUAGE); } else { return "en"; } @@ -411,14 +389,16 @@ public class PDFTranscoder extends XMLAbstractTranscoder { * <tt>TranscodingHints</tt> or null if any. */ public String getUserStyleSheetURI() { - return (String)getTranscodingHints().get(KEY_USER_STYLESHEET_URI); + return (String) getTranscodingHints().get( + ImageTranscoder.KEY_USER_STYLESHEET_URI); } /** * Returns the XML parser to use from the TranscodingHints. */ public String getXMLParserClassName() { - return (String)getTranscodingHints().get(KEY_XML_PARSER_CLASSNAME); + return (String) getTranscodingHints().get( + KEY_XML_PARSER_CLASSNAME); } /** @@ -473,9 +453,8 @@ public class PDFTranscoder extends XMLAbstractTranscoder { return false; } - public void registerExtension(BridgeExtension be) - { - } + public void registerExtension(BridgeExtension be) { + } } protected final static Set FEATURES = new HashSet(); @@ -484,174 +463,4 @@ public class PDFTranscoder extends XMLAbstractTranscoder { FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_LANG_FEATURE); FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_STATIC_FEATURE); } - - // -------------------------------------------------------------------- - // Keys definition - // -------------------------------------------------------------------- - - /** - * The image width key. - * <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1"> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Key: </TH> - * <TD VALIGN="TOP">KEY_WIDTH</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Value: </TH> - * <TD VALIGN="TOP">Float</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Default: </TH> - * <TD VALIGN="TOP">The width of the top most svg element</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Required: </TH> - * <TD VALIGN="TOP">No</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Description: </TH> - * <TD VALIGN="TOP">Specify the width of the image to create.</TD></TR> - * </TABLE> */ - public static final TranscodingHints.Key KEY_WIDTH - = new LengthKey(); - - /** - * The image height key. - * <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1"> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Key: </TH> - * <TD VALIGN="TOP">KEY_HEIGHT</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Value: </TH> - * <TD VALIGN="TOP">Float</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Default: </TH> - * <TD VALIGN="TOP">The height of the top most svg element</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Required: </TH> - * <TD VALIGN="TOP">No</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Description: </TH> - * <TD VALIGN="TOP">Specify the height of the image to create.</TD></TR> - * </TABLE> */ - public static final TranscodingHints.Key KEY_HEIGHT - = new LengthKey(); - - /** - * The area of interest key. - * <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1"> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Key: </TH> - * <TD VALIGN="TOP">KEY_AOI</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Value: </TH> - * <TD VALIGN="TOP">Rectangle2D</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Default: </TH> - * <TD VALIGN="TOP">The document's size</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Required: </TH> - * <TD VALIGN="TOP">No</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Description: </TH> - * <TD VALIGN="TOP">Specify the area of interest to render. The - * rectangle coordinates must be specified in pixels and in the - * document coordinates system.</TD></TR> - * </TABLE> - */ - public static final TranscodingHints.Key KEY_AOI - = new Rectangle2DKey(); - - /** - * The language key. - * <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1"> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Key: </TH> - * <TD VALIGN="TOP">KEY_LANGUAGE</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Value: </TH> - * <TD VALIGN="TOP">String</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Default: </TH> - * <TD VALIGN="TOP">"en"</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Required: </TH> - * <TD VALIGN="TOP">No</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Description: </TH> - * <TD VALIGN="TOP">Specify the preferred language of the document. - * </TD></TR> - * </TABLE> - */ - public static final TranscodingHints.Key KEY_LANGUAGE - = new StringKey(); - - /** - * The user stylesheet URI key. - * <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1"> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Key: </TH> - * <TD VALIGN="TOP">KEY_USER_STYLESHEET_URI</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Value: </TH> - * <TD VALIGN="TOP">String</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Default: </TH> - * <TD VALIGN="TOP">null</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Required: </TH> - * <TD VALIGN="TOP">No</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Description: </TH> - * <TD VALIGN="TOP">Specify the user style sheet.</TD></TR> - * </TABLE> - */ - public static final TranscodingHints.Key KEY_USER_STYLESHEET_URI - = new StringKey(); - - /** - * The pixel to millimeter conversion factor key. - * <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1"> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Key: </TH> - * <TD VALIGN="TOP">KEY_PIXEL_TO_MM</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Value: </TH> - * <TD VALIGN="TOP">Float</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Default: </TH> - * <TD VALIGN="TOP">0.33</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Required: </TH> - * <TD VALIGN="TOP">No</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Description: </TH> - * <TD VALIGN="TOP">Specify the pixel to millimeter conversion factor. - * </TD></TR> - * </TABLE> - */ - public static final TranscodingHints.Key KEY_PIXEL_TO_MM - = new FloatKey(); - - /** - * The image background paint key. - * <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="1"> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Key: </TH> - * <TD VALIGN="TOP">KEY_BACKGROUND_COLOR</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Value: </TH> - * <TD VALIGN="TOP">Paint</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Default: </TH> - * <TD VALIGN="TOP">null</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Required: </TH> - * <TD VALIGN="TOP">No</TD></TR> - * <TR> - * <TH VALIGN="TOP" ALIGN="RIGHT"><P ALIGN="RIGHT">Description: </TH> - * <TD VALIGN="TOP">Specify the background color to use. - * The color is required by opaque image formats and is used by - * image formats that support alpha channel.</TD></TR> - * </TABLE> - */ - public static final TranscodingHints.Key KEY_BACKGROUND_COLOR - = new PaintKey(); - } |