Prince
  • Buy Prince
  • Samples
  • Documentation
  • Forum
  • Download
  • Installation Guide
  • User Guide
  • Reference Guide

Contents

  • 1. Getting Started
    • Installing Prince
      • Installing Prince on Windows
      • Installing Prince on MacOS X
      • Installing Prince on Linux
        • Debian and Ubuntu
        • Redhat and CentOS
        • OpenSUSE
        • FreeBSD, Solaris and Generic Linux
      • Installing a license file
    • Your First Document
      • The lab report
      • Processing the document
      • Styling the document
    • If Something Didn't Work
      • Missing fonts
      • Fontconfig
      • Image formats
      • Shared library trouble
      • PATH issues
  • 2. Formatting
    • CSS Box Model
    • Tables
      • Running table headers and footers
      • Numbering table rows
      • Automatic table layout
      • Fixed table layout
      • Separated table borders
      • Collapsing table borders
      • Cells that span columns
      • Cells that span rows
    • Lists
      • List marker position
      • List marker type
      • List marker style
    • Images
      • Images in XHTML
      • Images in DocBook
      • Images in arbitrary XML
    • Scalable Vector Graphics (SVG)
      • Viewbox and viewport
      • Rectangles
      • Circles
      • Ellipses
      • Lines
      • Polylines
      • Polygons
      • Paths
      • Text
      • Images
      • Links
      • Transformations
      • Style Properties
  • 3. Paged Media
    • Styling pages
      • Page size
      • Page style
      • Page headers and footers
      • Generated content in headers and footers
      • Footnotes
    • Some @page selectors
      • The :first, :Nth, :left and :right page selectors
      • Named pages
    • Controlling pagination
      • Page breaks
      • Widows and orphans
    • Advanced paged media examples
      • The :blank page selector
      • Page groups
      • Page breaks and decoration
      • Printing wide content sideways
  • 4. Prince Input
    • Applying Style Sheets
      • Importing Style Sheets
      • Conflicting Declarations
      • Priority Determination
    • XML Input
      • XML Input
        • Validation
        • xml:lang
        • xml:id
        • xml:base
      • XML Styling
      • XML Inclusions (XInclude)
        • Including XML files
        • Including text files
        • Fallback
    • Using JavaScript with Prince
      • Logging
      • Console access
      • Event handling
      • Document statistics
      • PDF properties
      • Unsupported DOM properties
  • 5. Prince Output
    • PDF Output Options
      • PDF Compression
      • Font Embedding
      • Creating PostScript output
    • PDF Bookmarks
      • Bookmark levels
      • Bookmark labels
      • Bookmark targets
    • PDF Metadata
    • PDF Profiles
  • 6. Server Integration
    • Using Prince from Java
    • Using Prince from .NET with C#
    • Using Prince from .NET with VB.NET
    • Using Prince from Python
    • Using Prince from Perl
    • Using Prince from PHP
    • Using Prince from ASP
    • Using Prince from ColdFusion
      • Using Java
      • Using ActiveX/COM
    • Using Prince from ActiveX / COM / Visual Basic
  • 7. Prince Tips and Tricks
    • Generated Content
      • Page headers and footers
      • List markers
      • Footnote markers
      • Before and After pseudo-elements
      • Counters and Numbering
        • Counter reset and increment
        • Nested counters
        • Counter styles
      • Cross-references
        • Using target-counter
        • Using target-content
      • Script Functions
        • Accessing the current date and time
        • User-defined counter styles
      • Using generated content in margin boxes
      • Copying text content from the document
      • Taking elements from the document
    • Imaging and color
      • Color (RGB, CMYK, spot colors)
        • RGB
        • RGBA
        • CMYK
        • Spot colors
  • 8. Fonts
    • Generic font families
    • Redefining the generic font families

Reference Guide

  • A1. Command-line Reference
    • Examples
    • Specifying input and output
    • Options
      • General Options
      • Logging Options
      • Input Options
      • Network Options
      • JavaScript Options
      • CSS Options
      • PDF Output Options
      • PDF Metadata Options
      • PDF Encryption Options
      • Utility Options
  • A2. CSS Selectors
    • Universal Selectors
    • Type Selectors
    • Descendant Selectors
    • Child Selectors
    • Direct Sibling Selectors
    • Indirect Sibling Selectors
    • Attribute Selectors
    • Class Selectors
    • ID Selectors
    • Link Selectors
    • Language Selectors
    • Contains Selectors
    • Root Selectors
    • Empty Selectors
    • Negated Selectors
    • Child Selectors
    • Typed Child Selectors
    • Nth Child Selectors
    • Nth Last Child Selectors
    • Nth of Type Selectors
    • Nth Last of Type Selectors
    • Pseudo-element Selectors
  • A3. CSS Properties
    • background
    • background-attachment
    • background-clip
    • background-color
    • background-image
    • background-origin
    • background-position
    • background-repeat
    • background-size
    • border
    • border-bottom
    • border-bottom-color
    • border-bottom-left-radius
    • border-bottom-right-radius
    • border-bottom-style
    • border-bottom-width
    • border-clip
    • border-collapse
    • border-color
    • border-left
    • border-left-color
    • border-left-style
    • border-left-width
    • border-radius
    • border-right
    • border-right-color
    • border-right-style
    • border-right-width
    • border-spacing
    • border-style
    • border-top
    • border-top-color
    • border-top-left-radius
    • border-top-right-radius
    • border-top-style
    • border-top-width
    • border-width
    • bottom
    • box-decoration-break
    • box-sizing
    • caption-side
    • clear
    • clip
    • clip-path
    • clip-rule
    • color
    • column-break-after
    • column-break-before
    • column-count
    • column-fill
    • column-gap
    • column-rule
    • column-rule-color
    • column-rule-style
    • column-rule-width
    • column-span
    • column-width
    • columns
    • content
    • counter-increment
    • counter-reset
    • direction
    • display
    • empty-cells
    • float
    • font
    • font-family
    • font-size
    • font-stretch
    • font-style
    • font-variant
    • font-weight
    • footnote-style-position
    • height
    • hyphens
    • left
    • letter-spacing
    • line-height
    • line-stacking-strategy
    • list-style
    • list-style-image
    • list-style-position
    • list-style-type
    • margin
    • margin-bottom
    • margin-inside
    • margin-left
    • margin-outside
    • margin-right
    • margin-top
    • marks
    • max-height
    • max-width
    • min-height
    • min-width
    • opacity
    • orphans
    • overflow
    • overflow-wrap
    • padding
    • padding-bottom
    • padding-left
    • padding-right
    • padding-top
    • page
    • page-break-after
    • page-break-before
    • page-break-inside
    • position
    • prince-background-image-resolution
    • prince-bleed
    • prince-bookmark-label
    • prince-bookmark-level
    • prince-bookmark-state
    • prince-bookmark-target
    • prince-caption-page
    • prince-flow
    • prince-footnote-policy
    • prince-forced-breaks
    • prince-hyphenate-after
    • prince-hyphenate-before
    • prince-hyphenate-lines
    • prince-hyphenate-patterns
    • prince-image-magic
    • prince-image-resolution
    • prince-linebreak-magic
    • prince-link
    • prince-mark-length
    • prince-mark-offset
    • prince-page-group
    • prince-pdf-destination
    • prince-pdf-link-type
    • prince-pdf-open-action
    • prince-pdf-output-intent
    • prince-pdf-page-label
    • prince-pdf-page-layout
    • prince-pdf-page-mode
    • prince-pdf-paper-tray
    • prince-pdf-print-scaling
    • prince-pdf-profile
    • prince-pdf-script
    • prince-rotate-body
    • prince-shrink-to-fit
    • prince-text-justify
    • prince-text-replace
    • prince-trim
    • prince-wrap-inside
    • right
    • size
    • string-set
    • table-baseline
    • table-column-span
    • table-layout
    • table-row-span
    • text-align
    • text-align-last
    • text-decoration
    • text-indent
    • text-line-through
    • text-line-through-color
    • text-line-through-style
    • text-overflow
    • text-overline
    • text-overline-color
    • text-overline-style
    • text-transform
    • text-underline
    • text-underline-color
    • text-underline-style
    • top
    • transform
    • transform-origin
    • unicode-bidi
    • vertical-align
    • visibility
    • white-space
    • widows
    • width
    • word-break
    • word-spacing
    • writing-mode
    • z-index
  • A4. Appendix
    • Unsupported features in CSS 2.1
    • Page Size Keywords
    • Character Entities
      • Accented Letters
      • Symbols
      • Quotes
      • Accents
      • Miscellaneous
  • A5. Acknowledgements

XML Input

XML Input

Prince processes well-formed XML 1.0 documents with full support for namespaces, internal and external entities, DTDs, character references and CDATA sections. Comments and processing instructions are ignored and do not affect the output.

Validation

Prince loads DTD files in order to resolve entity definitions and default attribute values. However, Prince does not perform validation upon input documents. If validation is a processing requirement, the use of an external validator is recommended.

xml:lang

Prince supports the xml:lang attribute, which is used to indicate the language of the document text. Elements can be selected by language using the CSS :lang() selector.

xml:id

Prince supports the xml:id attribute, which is used to give elements a unique identifier. This identifier can be used when creating links and cross-references; it also allows elements to be selected using the CSS ID selector.

xml:base

Prince does not support the xml:base attribute, therefore hyperlinks must be absolute URLs or relative to the document path.

XML Styling

Prince provides sensible default styling behaviour for several common XML vocabularies:

XHTML
Prince styles XHTML documents by applying a default style sheet for formatting headings, paragraphs, tables, lists, inline elements and images. The default style sheet can be overridden or extended by user/author style sheets. (Note that Prince does not process HTML documents expressed in SGML or “tag soup” markup).
DocBook
Prince styles DocBook documents by applying a default style sheet for formatting headings, paragraphs, tables, lists, inline elements and images. The default style sheet can be overridden or extended by user/author style sheets. (Note that Prince does not process DocBook documents expressed in SGML).
SVG
Prince supports a rich subset of SVG 1.1, including basic shapes, paths, text and transformations. All svg elements are treated as replaced elements, similar to img elements in XHTML, and their content is rendered in a rectangular space. No line breaks or page breaks are made within an svg element. (Note that Prince does not support gradients, opacity or filters; see Scalable Vector Graphics (SVG) for details of which elements are supported).
Any other XML
No default style sheets will be used, so style sheets will need to be specified by the user or referenced from the document in order for Prince to apply style to the document.

XML Inclusions (XInclude)

XML Inclusions (XInclude) provides a method of including content from other files into an XML document. When Prince processes the XML document, the inclusions are resolved and the included content is treated as if it had been in the original document all along.

The core of XInclude is a single element, <include href="..."/>, which specifies the inclusion of the file referenced by the href attribute. The element is in the XInclude namespace, http://www.w3.org/2001/XInclude, which must be declared either on the element itself or one of its ancestor elements.

Including XML files

Here is an example of a book written in XHTML in which each chapter has been placed in a separate XML document for convenient editing and then included in the main document using XInclude:

<html xmlns:xi="http://www.w3.org/2001/XInclude">
<head>
<title>Book Title</title>
</head>
<body>
<xi:include href="chap1.xml"/>
<xi:include href="chap2.xml"/>
<xi:include href="chap3.xml"/>
</body>
</html>

(Note that the XInclude namespace was defined on the root element and bound to the xi prefix to save space by avoiding the need to declare the namespace on every inclusion).

Including text files

XInclude can also be used to include text files into XML documents:

<xi:include href="file.txt" parse="text"/>

This is a convenient way of including files containing arbitrary non-XML text, such as emails, database reports or program source code. It also allows the inclusion of external XML content as "unparsed text", as if all the markup had been explicitly escaped with character entities or placed in a CDATA section.

Fallback

It is possible to specify fallback content that should be used if an included file cannot be loaded. The fallback content can be arbitrary XML and may even contain additional inclusions.

<xi:include href="report.html">
    <xi:fallback>
	<p>No report is available</p>
    </xi:fallback>
</xi:include>

If the report.html file cannot be loaded then the paragraph saying "No report is available" will be included in the document instead.

Copyright © 2002 – 2019 YesLogic Pty. Ltd.
  • About Us
  • Privacy Policy
  • Contact Us