Package ru.bitel.common
Class FOUtils
java.lang.Object
ru.bitel.common.FOUtils
public class FOUtils
extends java.lang.Object
Всё для работы с FOP находится тут, также внутри статически хранится фабрика
fop, для повторного использования. Здесь же инициализируется конфиг. Здесь
методы для рендера в поток и для предварительных трансформаций (хотя они
к fop не относятся как таковые). Может использоваться в сервере и в клиенте.
Нужно во всём проекте работать с fop только через этот класс.
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FOUtils._PatchedAWTRenderer
Патч баги в fop > 2.3. -
Field Summary
Fields Modifier and Type Field Description static java.lang.String
RENDER_AWT
рендер в AWT (используется с устанавливаением рендера AWTRenderer)static java.lang.String
RENDER_PDF
рендер в PDF (используется с выходным потоком)static java.lang.String
RENDER_PRINT
рендер в печать (используется с устанавливаением рендера PrintRenderer)static java.lang.String
RENDER_RTF
рендер в RTF (используется с выходным потоком) -
Constructor Summary
Constructors Constructor Description FOUtils()
-
Method Summary
Modifier and Type Method Description static void
configure2DRenderer(org.apache.fop.render.java2d.Java2DRenderer renderer)
static org.apache.fop.render.awt.AWTRenderer
createAWTRenderer()
static org.apache.fop.render.print.PrintRenderer
createPrintRenderer(java.awt.print.PrinterJob printerJob, int copies)
static org.apache.fop.apps.FOUserAgent
newFOUserAgent()
Получение FOUserAgent из factory.static void
render(javax.xml.transform.Source fo, java.io.OutputStream outputStream, java.lang.String outputFormat)
Рендер входного fo в выходной поток в каком-то указанном формате.static void
render(javax.xml.transform.Source xml, javax.xml.transform.Source xslt, java.io.OutputStream outputStream, java.lang.String outputFormat)
Рендер входных xml+xslt в выходной поток в каком-то указанном формате.static void
render(javax.xml.transform.Source xml, javax.xml.transform.Source xslt, org.apache.fop.render.Renderer renderer, java.lang.String outputFormat)
Рендер входных xml+xslt с перегружаемым рендером.static void
render(javax.xml.transform.Source fo, org.apache.fop.render.Renderer renderer, java.lang.String outputFormat)
Рендеринг с перегружаемым рендером.static void
render(org.w3c.dom.Node fo, org.apache.fop.render.Renderer renderer, java.lang.String outputFormat)
static javax.xml.transform.sax.SAXResult
renderSAXResult(java.io.OutputStream outputStream, java.lang.String outputFormat)
Получение SAXResult рендера, указывается стрим и формат.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
RENDER_PDF
public static final java.lang.String RENDER_PDFрендер в PDF (используется с выходным потоком)- See Also:
- Constant Field Values
-
RENDER_RTF
public static final java.lang.String RENDER_RTFрендер в RTF (используется с выходным потоком)- See Also:
- Constant Field Values
-
RENDER_AWT
public static final java.lang.String RENDER_AWTрендер в AWT (используется с устанавливаением рендера AWTRenderer)- See Also:
- Constant Field Values
-
RENDER_PRINT
public static final java.lang.String RENDER_PRINTрендер в печать (используется с устанавливаением рендера PrintRenderer)- See Also:
- Constant Field Values
-
-
Constructor Details
-
FOUtils
public FOUtils()
-
-
Method Details
-
newFOUserAgent
public static org.apache.fop.apps.FOUserAgent newFOUserAgent()Получение FOUserAgent из factory. Для настройки его извне, используется в сложных случаях рендера. -
renderSAXResult
public static javax.xml.transform.sax.SAXResult renderSAXResult(java.io.OutputStream outputStream, java.lang.String outputFormat) throws org.apache.fop.apps.FOPExceptionПолучение SAXResult рендера, указывается стрим и формат. Используется в том числе в местах, где нужно как-то кастомно трансформировать, например, используя BGBilling-а XSLManager. Пример использования в таком случае:XSLManager.getInstance().transform( xml, xsltName, FOUtils.renderSAXResult( outputStream, outputFormat ) );
Типичное применение: генерация pdf из шаблона который трансформируется в FO-документ.- Parameters:
outputStream
- выходной поток для записиoutputFormat
- формат (mime-константа FOUtils.RENDER_*)- Returns:
- SAXResult, который надо сунуть в трансформер, например.
- Throws:
org.apache.fop.apps.FOPException
- ошибка FOP
-
render
public static void render(javax.xml.transform.Source xml, javax.xml.transform.Source xslt, java.io.OutputStream outputStream, java.lang.String outputFormat) throws org.apache.fop.apps.FOPException, javax.xml.transform.TransformerExceptionРендер входных xml+xslt в выходной поток в каком-то указанном формате. Если надо из строки, то new StreamSource(new StringReader(xmlstring)) Если из документа, то new DomSource(..)- Parameters:
xml
- исходный документ xml в виде Source.xslt
- шаблон xslt в виде Source.outputStream
- выходной поток для записиoutputFormat
- формат (mime-константа FOUtils.RENDER_*)- Throws:
org.apache.fop.apps.FOPException
- ошибка FOPjavax.xml.transform.TransformerException
- ошибка трансформации
-
render
public static void render(javax.xml.transform.Source fo, java.io.OutputStream outputStream, java.lang.String outputFormat) throws org.apache.fop.apps.FOPException, javax.xml.transform.TransformerExceptionРендер входного fo в выходной поток в каком-то указанном формате.- Parameters:
fo
- исходный документ fo в виде SourceoutputStream
- выходной поток для записиoutputFormat
- формат (mime-константа FOUtils.RENDER_*)- Throws:
org.apache.fop.apps.FOPException
- ошибка FOPjavax.xml.transform.TransformerException
- ошибка трансформации- See Also:
render( Source xml, Source xslt, OutputStream outputStream, String outputFormat )
-
render
public static void render(javax.xml.transform.Source xml, javax.xml.transform.Source xslt, org.apache.fop.render.Renderer renderer, java.lang.String outputFormat) throws org.apache.fop.apps.FOPException, javax.xml.transform.TransformerExceptionРендер входных xml+xslt с перегружаемым рендером.- Throws:
org.apache.fop.apps.FOPException
javax.xml.transform.TransformerException
- See Also:
render( Source fo, Renderer renderer, String outputFormat )
-
render
public static void render(javax.xml.transform.Source fo, org.apache.fop.render.Renderer renderer, java.lang.String outputFormat) throws org.apache.fop.apps.FOPException, javax.xml.transform.TransformerExceptionРендеринг с перегружаемым рендером. Задаётся вместо выходного потока нужный рендер. Рендер должен быть заранее созданным, также ему должен соответствовать нужный outputFormat, за этим надо проследить. Здесь в создаваемый объект FOP перегружается юзер агент, где оверрайдится рендер, больше с рендером ничего не делается, т.е. всё в рендере надо настроить до его передачи сюда. Например, для AWTRenderer до вызова этого метода должно быть установлено при желании renderer.setPreviewDialogDisplayed(false)- Parameters:
fo
-renderer
-outputFormat
-- Throws:
org.apache.fop.apps.FOPException
javax.xml.transform.TransformerException
-
render
public static void render(org.w3c.dom.Node fo, org.apache.fop.render.Renderer renderer, java.lang.String outputFormat) throws org.apache.fop.apps.FOPException, javax.xml.transform.TransformerException- Throws:
org.apache.fop.apps.FOPException
javax.xml.transform.TransformerException
-
createAWTRenderer
public static org.apache.fop.render.awt.AWTRenderer createAWTRenderer() -
createPrintRenderer
public static org.apache.fop.render.print.PrintRenderer createPrintRenderer(java.awt.print.PrinterJob printerJob, int copies) -
configure2DRenderer
public static void configure2DRenderer(org.apache.fop.render.java2d.Java2DRenderer renderer)
-