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 - ошибка FOP
      javax.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 в виде Source
      outputStream - выходной поток для записи
      outputFormat - формат (mime-константа FOUtils.RENDER_*)
      Throws:
      org.apache.fop.apps.FOPException - ошибка FOP
      javax.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)