Package ru.bitel.common

# Class FOUtils

java.lang.Object
ru.bitel.common.FOUtils

public class FOUtils extends 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 final String`
  `RENDER_AWT`
  рендер в AWT (используется с устанавливаением рендера AWTRenderer)
  `static final String`
  `RENDER_PDF`
  рендер в PDF (используется с выходным потоком)
  `static final String`
  `RENDER_PRINT`
  рендер в печать (используется с устанавливаением рендера PrintRenderer)
  `static final 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(PrinterJob printerJob, int copies)`
  `static org.apache.fop.apps.FOUserAgent`
  `newFOUserAgent()`
  Получение FOUserAgent из factory.
  `static void`
  `render(Source fo, OutputStream outputStream, String outputFormat)`
  Рендер входного fo в выходной поток в каком-то указанном формате.
  `static void`
  `render(Source xml, Source xslt, OutputStream outputStream, String outputFormat)`
  Рендер входных xml+xslt в выходной поток в каком-то указанном формате.
  `static void`
  `render(Source xml, Source xslt, org.apache.fop.render.Renderer renderer, String outputFormat)`
  Рендер входных xml+xslt с перегружаемым рендером.
  `static void`
  `render(Source fo, org.apache.fop.render.Renderer renderer, String outputFormat)`
  Рендеринг с перегружаемым рендером.
  `static void`
  `render(Node fo, org.apache.fop.render.Renderer renderer, String outputFormat)`
  `static SAXResult`
  `renderSAXResult(OutputStream outputStream, 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 String RENDER_PDF
    рендер в PDF (используется с выходным потоком)
    See Also:
      - Constant Field Values

  - ### RENDER_RTF

    public static final String RENDER_RTF
    рендер в RTF (используется с выходным потоком)
    See Also:
      - Constant Field Values

  - ### RENDER_AWT

    public static final String RENDER_AWT
    рендер в AWT (используется с устанавливаением рендера AWTRenderer)
    See Also:
      - Constant Field Values

  - ### RENDER_PRINT

    public static final 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 SAXResult renderSAXResult(OutputStream outputStream, 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(Source xml, Source xslt, OutputStream outputStream, String outputFormat) throws org.apache.fop.apps.FOPException, 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
      `TransformerException` - ошибка трансформации

  - ### render

    public static void render(Source fo, OutputStream outputStream, String outputFormat) throws org.apache.fop.apps.FOPException, TransformerException
    Рендер входного fo в выходной поток в каком-то указанном формате.
    Parameters:
      `fo` - исходный документ fo в виде Source
      `outputStream` - выходной поток для записи
      `outputFormat` - формат (mime-константа FOUtils.RENDER_*)
    Throws:
      `org.apache.fop.apps.FOPException` - ошибка FOP
      `TransformerException` - ошибка трансформации
    See Also:
      - `render(Source xml, Source xslt, OutputStream outputStream, String outputFormat)`

  - ### render

    public static void render(Source xml, Source xslt, org.apache.fop.render.Renderer renderer, String outputFormat) throws org.apache.fop.apps.FOPException, TransformerException
    Рендер входных xml+xslt с перегружаемым рендером.
    Throws:
      `org.apache.fop.apps.FOPException`
      `TransformerException`
    See Also:
      - `render(Source fo, Renderer renderer, String outputFormat)`

  - ### render

    public static void render(Source fo, org.apache.fop.render.Renderer renderer, String outputFormat) throws org.apache.fop.apps.FOPException, TransformerException
    Рендеринг с перегружаемым рендером. Задаётся вместо выходного потока нужный рендер. Рендер должен быть заранее созданным, также ему должен соответствовать нужный outputFormat, за этим надо проследить. Здесь в создаваемый объект FOP перегружается юзер агент, где оверрайдится рендер, больше с рендером ничего не делается, т.е. всё в рендере надо настроить до его передачи сюда. Например, для AWTRenderer до вызова этого метода должно быть установлено при желании renderer.setPreviewDialogDisplayed(false)
    Parameters:
      `fo` -
      `renderer` -
      `outputFormat` -
    Throws:
      `org.apache.fop.apps.FOPException`
      `TransformerException`

  - ### render

    public static void render(Node fo, org.apache.fop.render.Renderer renderer, String outputFormat) throws org.apache.fop.apps.FOPException, TransformerException
    Throws:
      `org.apache.fop.apps.FOPException`
      `TransformerException`

  - ### createAWTRenderer

    public static org.apache.fop.render.awt.AWTRenderer createAWTRenderer()

  - ### createPrintRenderer

    public static org.apache.fop.render.print.PrintRenderer createPrintRenderer(PrinterJob printerJob, int copies)

  - ### configure2DRenderer

    public static void configure2DRenderer(org.apache.fop.render.java2d.Java2DRenderer renderer)