XMLGRAPHICS-FOP(1)

πŸ“¦ version 2.10, in opensuse-leap 16.0

πŸ’– xmlgraphics-fop(1) πŸ’–

okay so bestie, the header of this page is doing the absolute most: it says XMLGRAPHICS-FOP(1) on both sides, and the URL in the middle is literally http://xmlgraphics.apache. β€” yes, with the trailing dot and everything. The manual name is xmlgraphics-fop, and this is its man page. We're talking the Formatter for Printing XSLT Processed XML Files. πŸ’…

🌸 NAME 🌸

xmlgraphics-fop β€” Formatter for Printing XSLT Processed XML Files.

✨ SYNOPSIS ✨

okay so here's the shape of the command, copied exactly, no cap:

       Classname: org.apache.fop.cli.Main

       xmlgraphics-fop [-fo | -xml] infile [-xsl file] [-awt | -pdf | -mif |
                       -rtf | -tiff | -png | -pcl | -ps | -txt | -at [mime]  |
                       -print] outfile

πŸ’… OPTIONS πŸ’…

The following options in alphabetical order are available, bestie:

  • -a β€” enables accessibility features (Tagged PDF etc.), and the default is off. so if you need that, turn it on. ✨
  • -afp OUTFILE β€” input will be rendered as AFP. πŸ’–
  • -at [mime] OUTFILE β€” representation of area tree as XML; specify optional mime output to allow the AT to be converted to final format later. πŸ¦‹
  • -atin INFILE β€” area tree input file. 🌸
  • -awt β€” input will be displayed on screen. πŸ‘€
  • -c cfg.xml β€” use additional configuration file cfg.xml. πŸŽ€
  • -catalog β€” use XML catalog resolver for input XML and XSLT files. πŸ“š
  • -conserve β€” enable memory-conservation policy (trades memory-consumption for disk I/O) (Note: currently only influences whether the area tree is serialized.) 🧠
  • -d β€” debug mode. πŸ”
  • -dpi XXX β€” target resolution in dots per inch (dpi) where XXX is a number. πŸ”’
  • -fo INFILE β€” XSL-FO input file. πŸ’œ
  • -foout OUTFILE β€” input will only be XSL transformed. The intermediate XSL-FO file is saved and no rendering is performed. (Only available if you use -xml and -xsl parameters.) 😭
  • -if [mime] OUTFILE β€” representation of document in intermediate format XML; specify optional mime output to allow the IF to be converted to final format later. πŸ¦‹
  • -ifin INFILE β€” intermediate format input file. 🌈
  • -imagein INFILE β€” image input file (piping through stdin not supported). πŸ™ˆ
  • infile β€” XSL-FO input file (use - for infile to pipe input from stdin); same as -fo. ⭐
  • -l LANG β€” use the language for user information. 🌍
  • -noannotations β€” encrypt PDF file without edit annotation permission. πŸ”’
  • -nocopy β€” encrypt PDF file without copy content permission. πŸ”’
  • -noedit β€” encrypt PDF file without edit content permission. πŸ”’
  • -noprint β€” encrypt PDF file without printing permission. πŸ”’
  • -o PASSWORD β€” encrypt PDF file with option owner password. πŸ”‘
  • -out mime OUTFILE β€” input will be rendered using the given MIME type. Example: -out application/pdf D:\out.pdf (Tip: -out list prints the list of supported MIME types). πŸ“
  • outfile β€” input will be rendered as PDF into outfile (use - for outfile to pipe output to stdout). πŸ’Ύ
  • -param NAME VALUE β€” NAME to use for parameter NAME in XSLT stylesheet (repeat this option for each parameter). πŸ”
  • -pcl OUTFILE β€” input will be rendered as PCL. πŸ–¨οΈ
  • -pdf OUTFILE β€” input will be rendered as PDF (outfile required). πŸ“„
  • -pdfa1b OUTFILE β€” input will be rendered as PDF/A-1b compliant PDF (outfile required, same as -pdf outfile -pdfprofile PDF/A-1b). πŸ“„βœ¨
  • -pdfprofile PROF β€” PDF file will be generated with the specified profile (Examples for PROF: PDF/A-1b or PDF/X-3:2003). 🎯
  • -png OUTFILE β€” input will be rendered as PNG. πŸ–ΌοΈ
  • -print β€” input file will be rendered and sent to the printer; see options with -print help. πŸ–¨οΈ
  • -ps OUTFILE β€” input will be rendered as PostScript. πŸ“œ
  • -q β€” quiet mode. 🀫
  • -r β€” relaxed/less strict validation (where available). 😌
  • -rtf OUTFILE β€” input will be rendered as RTF. πŸ“
  • -s β€” for area tree XML, down to block areas only. 🧱
  • -svg OUTFILE β€” input will be rendered as an SVG slides file. Experimental feature; requires additional fop-sandbox.jar. πŸ§ͺ
  • -tiff OUTFILE β€” input will be rendered as TIFF. πŸ–ΌοΈ
  • -txt OUTFILE β€” input will be rendered as plain text. πŸ”€
  • -u PASSWORD β€” encrypt PDF file with option user password. πŸ”
  • -v β€” run in verbose mode (currently simply print FOP version and continue). πŸ—£οΈ
  • -version β€” print FOP version and exit. πŸšͺ
  • -x β€” dump configuration settings. πŸ—‚οΈ
  • -xml INFILE β€” XML input file, must be used together with -xsl. 🧩
  • -xsl STYLESHEET β€” XSLT stylesheet. 🎨

πŸŽ€ FOP CONFIGURATION FILE πŸŽ€

This is a small overview. More details can be found in http://xmlgraphics.apache.org/fop/trunk/configuration.html#renderers. πŸ’–

Example 1. Excerpt FOP Configuration File

           <fop version="1.0">

             <!-- Strict user configuration -->
             <strict-configuration>true</strict-configuration>

             <!-- Strict FO validation -->
             <strict-validation>true</strict-validation>

             <!-- Base URL for resolving relative URLs -->
             <base>./</base>

             <!-- Font Base URL for resolving relative font URLs -->
             <font-base>./</font-base>

             <!-- Source resolution in dpi (dots/pixels per inch) for determining the size of pixels in SVG and bitmap images, default: 72dpi -->
             <source-resolution>72</source-resolution>
             <!-- Target resolution in dpi (dots/pixels per inch) for specifying the target resolution for generated bitmaps, default: 72dpi -->
             <target-resolution>72</target-resolution>

             <!-- default page-height and page-width, in case
                  value is specified as auto -->
             <default-page-settings height="11in" width="8.26in"/>

             <!-- Use file name nl_Bel instead of the default nl_BE -->
             <hyphenation-pattern lang="nl" country="BE">nl_Bel</hyphenation-pattern>

             <!-- etc. etc..... -->
           </fop>

Table 1. Summary of the General Configuration Options β€” okay so this is the general config cheat sheet, bestie. Every element below is a little knob in your FOP config file, and here's the tea on all of them 🫢

  • base β€” Data type: URL or directory. What it does: specifies the base URL based on which relative URL will be resolved. Default: current directory.
  • font-base β€” Data type: URL or directory. What it does: specifies the base URL based on which relative font URLs will be resolved. Default: base URL/directory.
  • hyphenation-base β€” Data type: URL or directory. What it does: specifies the base URL based on which relative URLs to hyphenation pattern files will be resolved. If not specified, support for user-supplied hyphenation patterns remains disabled. Default: disabled.
πŸ’‘ Real talk: relative URIs for the above three properties are evaluated relative to the base URI of the configuration file. If the configuration is provided programmatically, the base URI can be set with FopFactory.setUserConfigBaseURI; default is the current working directory.
  • hyphenation-pattern β€” Data type: String, attribute lang, attribute country (optional). What it does: register a file name for the hyphenation pattern for the mentioned language and country. Language ll and country CC must both consist of two letters. Default: ll_CC.
  • source-resolution β€” Data type: Integer. What it does: resolution in dpi (dots per inch) which is used internally to determine the pixel size for SVG images and bitmap images without resolution information. Default: 72dpi.
  • target-resolution β€” Data type: Integer. What it does: resolution in dpi (dots per inch) used to specify the output resolution for bitmap images generated by bitmap renderers (such as the TIFF renderer) and by bitmaps generated by Apache Batik for filter effects and such. Default: 72dpi.
  • strict-configuration β€” Data type: Boolean. What it does: setting this option to 'true' will cause FOP to strictly verify the contents of the FOP configuration file to ensure that defined resources (such as fonts and

…base URLs/directories) are valid and available to FOP β€” and bestie, if anything's off, FOP does not play. It will immediately raise an exception. No warnings, no gentle nudge, just straight to exception. πŸ’€

  • strict-validation β€” Boolean β€” default true. Set this to 'false' and FOP gets a lil more forgiving about XSL-FO validity. Like, suddenly you're allowed to specify a border on a region-body β€” which some FO implementations support but which is, lowkey, non-standard. ⚠️ Heads up tho: such a border would currently have no effect in Apache FOP. So it's giving "permission granted, vibe denied." πŸ™ˆ
  • break-indent-inheritance β€” Boolean β€” default false. Flip this to 'true' and FOP uses an alternative rule set to figure out text indents specified through margins, start-indent and end-indent. Why does this exist? Because a bunch of commercial FO implementations chose to break the XSL specification on this one, and this option tries to mimic their behavior. 🎭 The tea: Apache FOP may still not behave exactly like those implementations β€” partly because FOP hasn't fully matched the desired behavior, and partly because the commercial implementations don't even agree with each other (the behavior among them varies, iykyk). The default for this option (i.e. false) is to behave exactly like the specification describes. Spec girlies stay winning. πŸ‘‘
  • default-page-settings β€” n/a β€” default "height" 11 inches, "width" 8.26 inches. This one specifies the default width and height of a page whenever "auto" is specified for either or both values. To set the two values, use the "height" and "width" attributes on the default-page-settings element. πŸ“βœ¨
  • use-cache β€” Boolean β€” default true. All fonts information that's been gathered as a result of "directory" or "auto-detect" font configurations gets cached for future rendering runs. This setting should
  • that one row whose name scrolled right off the screen 😭 β€” ngl bestie the first cell is gone but the vibe is clear: this option does something to improve performance on systems where fonts have been configured using the directory or auto-detect tag mechanisms. And before you ask β€” by default this option is switched on. So like, it's already doing its little job, you don't gotta do anything πŸ’…
  • cache-file β€” type: String β€” this one specifies the file/directory path of the fop cache file. And what's in it, you ask? Currently this file is only used to cache font triplet information for future reference. That's it. That's the whole personality πŸŽ€ β€” default is ${base}/conf/fop.cache
  • renderers β€” type: MIME β€” contains the configuration for each renderer ✨ β€” default: n/a

🌸 FILES 🌸

  • /etc/fop.conf β€” the system-wide configuration, aka the big-picture settings the whole machine shares 🫢
  • ~/.foprc β€” your own user configuration, your personal little corner of fop πŸ’–
  • fop.xconf β€” an example configuration file, and yes you can absolutely hand it over with the -c option. Peep the section called β€œFOP CONFIGURATION FILE” for the deets πŸ‘‘

✨ EXAMPLES ✨

okay this is the part where it gets fun πŸ¦‹ these are all literally copy-pasteable, go off:

  • Transforms the foo.fo FO file into PDF πŸ”₯
fop foo.fo foo.pdf
  • Does the same as the previous line β€” yes, literally identical behaviour, two different ways to say the same thing πŸ’€
fop -xml foo.xml -xsl foo.xsl -pdf foo.pdf
  • Transforms and formats foo.xml with the help of the XSLT stylesheet foo.xsl into the PDF file foo.pdf ⭐
fop -xml foo.xml -xsl foo.xsl -pdf foo.pdf
  • Only transforms, but doesn't format β€” it's giving "half the job, all the attitude" πŸ™ˆ
fop -xml foo.xml -xsl foo.xsl -foout foo.fo
  • Formats foo.fo into FRTF πŸŽ€
fop foo.fo -mif foo.rtf
  • Input file is send to the printer πŸ–¨οΈ β€” yes, the manpage really said "is send", we're keeping the words exactly as they are, character for character, no cap 🫢
fop foo.fo -print

πŸ‘‘ AUTHORS πŸ‘‘

  • Apache Foundation β€” the whole entire icon behaviour 🌈
  • Thomas Schraitle β€” credited with the manpage, absolute legend for this one πŸŽ€

That's the whole page bestie, you ate πŸ’… go forth and render some PDFs ✨

and that's a wrap on xmlgraphics-fop version 1.1, dated 02/06/2026 β€” page XMLGRAPHICS-FOP(1), mwah πŸ’–πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from