Package org.apache.fop.svg
Class PDFDocumentGraphics2D
java.lang.Object
java.awt.Graphics
java.awt.Graphics2D
org.apache.xmlgraphics.java2d.AbstractGraphics2D
org.apache.fop.svg.PDFGraphics2D
org.apache.fop.svg.PDFDocumentGraphics2D
- All Implemented Interfaces:
Cloneable
,NativeImageHandler
This class is a wrapper for the
PDFGraphics2D
that
is used to create a full document around the PDF rendering from
PDFGraphics2D
.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.fop.svg.PDFGraphics2D
PDFGraphics2D.TransparencyIgnoredEventListener
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Default device resolution (300dpi is a resonable quality for most purposes)protected Shape
Initial clipping area, used to restore to original setting when a new page is started.protected AffineTransform
Initial transformation matrix, used to restore to original setting when a new page is started.static final int
Normal PDF resolution (72dpi)Fields inherited from class org.apache.fop.svg.PDFGraphics2D
baseLevel, colorHandler, currentFontName, currentFontSize, currentStream, fontInfo, nativeCount, outputStream, ovFontState, pageRef, paintingState, pdfDoc, resourceContext
Fields inherited from class org.apache.xmlgraphics.java2d.AbstractGraphics2D
gc, inPossibleRecursion, textAsShapes
-
Constructor Summary
ConstructorDescriptionCreate a new PDFDocumentGraphics2D.PDFDocumentGraphics2D
(boolean textAsShapes) Create a new PDFDocumentGraphics2D.PDFDocumentGraphics2D
(boolean textAsShapes, OutputStream stream, int width, int height) Create a new PDFDocumentGraphics2D.This constructor supports the create method -
Method Summary
Modifier and TypeMethodDescriptionprotected void
Closes the current page and adds it to the PDF file.create()
Creates a newGraphics
object that is a copy of thisGraphics
object.void
drawString
(String s, float x, float y) Draw a string to the pdf document.void
finish()
The rendering process has finished.float
Get the font info for this pdf document.Return the PDFContext for this instance.Get the pdf document created by this class.void
nextPage()
Is called to prepare the PDFDocumentGraphics2D for the next page to be painted.void
nextPage
(int width, int height) Is called to prepare the PDFDocumentGraphics2D for the next page to be painted.protected void
This method is used by PDFDocumentGraphics2D to prepare a new page if necessary.void
setBackgroundColor
(Color col) Set the background of the pdf document.void
setDeviceDPI
(float deviceDPI) Set the device resolution for rendering.void
setFontInfo
(FontInfo fontInfo) Sets the font info for this PDF document.void
setSVGDimension
(float w, float h) Set the dimensions of the svg document that will be drawn.void
Setup a default FontInfo instance if none has been setup before.void
setupDocument
(OutputStream stream, int width, int height) Setup the document.protected void
Called to prepare a new pageMethods inherited from class org.apache.fop.svg.PDFGraphics2D
addLink, addNativeImage, applyAlpha, applyColor, applyPaint, applyStroke, applyUnknownPaint, copyArea, dispose, doDrawing, draw, drawImage, drawImage, drawInnerRenderedImage, drawRenderableImage, drawRenderedImage, fill, getBaseTransform, getBuffer, getDeviceConfiguration, getFontMetrics, getInternalFontForAWTFont, getPageReference, getString, handleIOException, isMultiByteFont, isTransparencyAllowed, processPathIterator, registerFunction, registerPattern, registerShading, setGraphicContext, setOutputStream, setOverrideFontState, setPaintingState, setXORMode, updateCurrentFont, writeClip
Methods inherited from class org.apache.xmlgraphics.java2d.AbstractGraphics2D
addRenderingHints, clearRect, clip, clipRect, drawArc, drawGlyphVector, drawImage, drawImage, drawImage, drawImage, drawImage, drawImage, drawLine, drawOval, drawPolygon, drawPolyline, drawRect, drawRoundRect, drawString, drawString, drawString, fillArc, fillOval, fillPolygon, fillRect, fillRoundRect, getBackground, getClip, getClipBounds, getColor, getComposite, getFont, getFontRenderContext, getGraphicContext, getPaint, getRenderingHint, getRenderingHints, getStroke, getTransform, hit, rotate, rotate, scale, setBackground, setClip, setClip, setColor, setComposite, setFont, setPaint, setPaintMode, setRenderingHint, setRenderingHints, setStroke, setTransform, shear, transform, translate, translate
Methods inherited from class java.awt.Graphics2D
draw3DRect, fill3DRect
Methods inherited from class java.awt.Graphics
create, drawBytes, drawChars, drawPolygon, fillPolygon, finalize, getClipBounds, getClipRect, getFontMetrics, hitClip, toString
-
Field Details
-
NORMAL_PDF_RESOLUTION
public static final int NORMAL_PDF_RESOLUTIONNormal PDF resolution (72dpi)- See Also:
-
DEFAULT_NATIVE_DPI
public static final int DEFAULT_NATIVE_DPIDefault device resolution (300dpi is a resonable quality for most purposes)- See Also:
-
initialClip
Initial clipping area, used to restore to original setting when a new page is started. -
initialTransform
Initial transformation matrix, used to restore to original setting when a new page is started.
-
-
Constructor Details
-
PDFDocumentGraphics2D
public PDFDocumentGraphics2D(boolean textAsShapes) Create a new PDFDocumentGraphics2D. This is used to create a new pdf document, the height, width and output stream can be setup later. For use by the transcoder which needs font information for the bridge before the document size is known. The resulting document is written to the stream after rendering.- Parameters:
textAsShapes
- set this to true so that text will be rendered using curves and not the font.
-
PDFDocumentGraphics2D
public PDFDocumentGraphics2D(boolean textAsShapes, OutputStream stream, int width, int height) throws IOException 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.- Parameters:
textAsShapes
- set this to true so that text will be rendered using curves and not the font.stream
- the stream that the final document should be written to.width
- the width of the document (in points)height
- the height of the document (in points)- Throws:
IOException
- an io exception if there is a problem writing to the output stream
-
PDFDocumentGraphics2D
public PDFDocumentGraphics2D()Create a new PDFDocumentGraphics2D. This is used to create a new pdf document. For use by the transcoder which needs font information for the bridge before the document size is known. The resulting document is written to the stream after rendering. This constructor is Avalon-style. -
PDFDocumentGraphics2D
This constructor supports the create method- Parameters:
g
- the pdf document graphics to make a copy of
-
-
Method Details
-
setupDocument
Setup the document.- Parameters:
stream
- the output stream to write the documentwidth
- the width of the pageheight
- the height of the page- Throws:
IOException
- an io exception if there is a problem writing to the output stream
-
setupDefaultFontInfo
public void setupDefaultFontInfo()Setup a default FontInfo instance if none has been setup before. -
setDeviceDPI
public void setDeviceDPI(float deviceDPI) Set the device resolution for rendering. Will take effect at the start of the next page.- Parameters:
deviceDPI
- the device resolution (in dpi)
-
getDeviceDPI
public float getDeviceDPI()- Returns:
- the device resolution (in dpi) for rendering.
-
setFontInfo
Sets the font info for this PDF document.- Parameters:
fontInfo
- the font info object with all the fonts
-
getFontInfo
Get the font info for this pdf document.- Returns:
- the font information
-
getPDFDocument
Get the pdf document created by this class.- Returns:
- the pdf document
-
getPDFContext
Return the PDFContext for this instance.- Returns:
- the PDFContext
-
setSVGDimension
public void setSVGDimension(float w, float h) 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.- Parameters:
w
- the width of the pageh
- the height of the page
-
setBackgroundColor
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.- Parameters:
col
- the background colour to fill
-
nextPage
public void nextPage()Is called to prepare the PDFDocumentGraphics2D for the next page to be painted. Basically, this closes the current page. A new page is prepared as soon as painting starts. -
nextPage
public void nextPage(int width, int height) Is called to prepare the PDFDocumentGraphics2D for the next page to be painted. Basically, this closes the current page. A new page is prepared as soon as painting starts. This method allows to start the new page (and following pages) with a different page size.- Parameters:
width
- the width of the new page (in points)height
- the height of the new page (in points)
-
closePage
protected void closePage()Closes the current page and adds it to the PDF file. -
preparePainting
protected void preparePainting()This method is used by PDFDocumentGraphics2D to prepare a new page if necessary.- Overrides:
preparePainting
in classPDFGraphics2D
-
startPage
Called to prepare a new page- Throws:
IOException
- if starting the new page fails due to I/O errors.
-
finish
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.- Throws:
IOException
- an io exception if there is a problem writing to the output stream
-
create
Creates a newGraphics
object that is a copy of thisGraphics
object.- Overrides:
create
in classPDFGraphics2D
- Returns:
- a new graphics context that is a copy of this graphics context.
-
drawString
Draw a string to the pdf document. This either draws the string directly or if drawing text as shapes it converts the string into shapes and draws that.- Overrides:
drawString
in classPDFGraphics2D
- Parameters:
s
- the string to drawx
- the x positiony
- the y position- See Also:
-
AbstractGraphics2D.setPaint(java.awt.Paint)
Graphics.setColor(java.awt.Color)
Graphics.setFont(java.awt.Font)
AbstractGraphics2D.setTransform(java.awt.geom.AffineTransform)
AbstractGraphics2D.setComposite(java.awt.Composite)
AbstractGraphics2D.setClip(int, int, int, int)
-