You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

embedding.xml 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?xml version="1.0" standalone="no"?>
  2. <!-- Overview -->
  3. <document>
  4. <header>
  5. <title>FOP Design</title>
  6. <subtitle>Design Approach to FOP</subtitle>
  7. <authors>
  8. <person name="Keiron Liddle" email="keiron@aftexsw.com"/>
  9. </authors>
  10. </header>
  11. <body>
  12. <s1 title="Introduction">
  13. <p>
  14. This is the design for the external interface when FOP is to be embedded
  15. inside another java application.
  16. </p>
  17. <p>
  18. Common places where FOP is embedded is in a report production application
  19. of a server side application such as <jump href="http://xml.apache.org/cocoon/index.html">Cocoon</jump>.
  20. </p>
  21. </s1>
  22. <s1 title="Settings">
  23. <s2 title="User Agent">
  24. <p>
  25. The user agent is responsible for supplying user or context
  26. specific information. The list of user agent values can be found on the
  27. <jump href="useragent.html">User Agent</jump> page.
  28. </p>
  29. </s2>
  30. <s2 title="Logging">
  31. <p>
  32. <ul>
  33. <li>logging level</li>
  34. <li>logging messages of various levels</li>
  35. <li>error handling</li>
  36. <li>Logging setup (LogKit, Log4J, JDK14Logging)</li>
  37. </ul>
  38. </p>
  39. </s2>
  40. <s2 title="XML input">
  41. <p>
  42. <ul>
  43. <li>various ways to supply FOP with the xsl:fo file, fo, xml+xsl</li>
  44. <li>sax handler</li>
  45. </ul>
  46. </p>
  47. </s2>
  48. <s2 title="general options">
  49. <p>
  50. <ul>
  51. <li>base directory</li>
  52. <li>uri resolvers</li>
  53. <li>which implementation of a particular</li>
  54. <li>LayoutManager to use</li>
  55. </ul>
  56. </p>
  57. </s2>
  58. <s2 title="Rendering Options">
  59. <p>
  60. <ul>
  61. <li>embedding fonts</li>
  62. <li>compression in pdf</li>
  63. <li>image embedding</li>
  64. </ul>
  65. </p>
  66. <p>
  67. for the PS renderer (eventually):
  68. <ul>
  69. <li>PostScript Level</li>
  70. <li>PPD to use</li>
  71. <li>binary/ascii switch</li>
  72. </ul>
  73. </p>
  74. </s2>
  75. <s2 title="User Agent">
  76. <p>
  77. Output from FOP:
  78. - Generation statistics: Number of pages total, Number of pages of each
  79. page-sequence, page-master used for each page (could be used to
  80. control the paper bin to get paper from, important for me in
  81. conjunction with PS Renderer).
  82. </p>
  83. </s2>
  84. <s2 title="Setting Up">
  85. <p>
  86. The Driver handles the XML input.
  87. The user agent information is through the FOUserAgent.
  88. We could handle logging through the user agent.
  89. Options could also be handled through the user agent, using mime type
  90. selection for renderer options.
  91. </p>
  92. </s2>
  93. <s2 title="Others">
  94. <p>
  95. render to more than one renderer at once (maybe not from the command line).
  96. For example you could generate a PDF for the archive
  97. and the PS for the printer in one run. It would probably be faster than
  98. converting the PDF to PostScript afterwards.
  99. </p>
  100. <p>
  101. Several code pieces for resolving URLs and/or
  102. file locations are scattered all over FOP and Batik. These should
  103. be replaced with an URIResolver invocation to unify behaviour and
  104. remove redundancies.
  105. </p>
  106. </s2>
  107. </s1>
  108. </body>
  109. </document>