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

Using Prince from ColdFusion

Prince can be called from ColdFusion pages using the Java interface or the ActiveX/COM interface, if on Windows.

Using Java

Start by downloading the Java interface for Prince. This package contains two files: Prince.jar and README.txt.

The Prince.jar file contains the class file that provides the Java interface to Prince (com.princexml.Prince). The README.txt file lists the Java class methods and explains how to use them.

Place the Prince.jar file in a directory of your choice then start ColdFusion Administrator. Under 'Server Settings > Java and JVM', you should find 'ColdFusion Class Path'. Here you can tell ColdFusion where to look for Java classes. Type in the full path of the Prince.jar file. It should be something like: PATH\Prince.jar, where PATH is the path of the directory that contains the Prince.jar.

If this is done correctly, ColdFusion should know where to find the Prince Java interface class. The following is some sample CFML code showing how to use it:

<cfscript>
   pr = CreateObject("java", "com.princexml.Prince");
   
   pr.init("C:\Prince\engine\bin\prince.exe");
   pr.addStyleSheet("C:\Prince\test\test1.css");
   pr.addStyleSheet("C:\Prince\test\test2.css");
   pr.setEncryptInfo(128, "secretPassword1", "secretPassword2",
      True, True, True, True);       
   
   if (pr.Convert("C:\Prince\examples\magic.html", "C:\output.pdf"))
      WriteOutput("Successful");
   else
      WriteOutput("Unsuccessful");
</cfscript>

If on Linux, substitute the paths with the appropriate UNIX style paths.

Using ActiveX/COM

If you are running ColdFusion on Windows, you can also call Prince using the ActiveX/COM interface.

This interface is provided in the form of an ActiveX DLL file that needs to be registered in the Windows registry using REGSVR32.EXE:

regsvr32 C:\Prince\PRINCE.dll

In order to call Prince from ColdFusion, we need to create a COM object using the CreateObject function that is available in CFML scripting (you can also use the <cfobject ...> tag if you prefer). Once the COM object is created, you can use the COM interface methods to perform the tasks.

The following is some sample code for illustration:

<cfscript>
   pr = CreateObject("Com", "PrinceCom.Prince", "local");
   
   pr.SetPrincePath("C:\Prince\engine\bin\prince.exe");
   pr.AddStyleSheet("C:\Prince\test\test1.css");
   pr.AddStyleSheet("C:\Prince\test\test2.css");
   pr.SetEncryptInfo(128, "secretPassword1", "secretPassword2",
      True, True, True, True);
   
   if (pr.Convert("C:\Prince\examples\magic.html", "C:\output.pdf") eq 1)
      WriteOutput("Successful");
   else
      WriteOutput("Unsuccessful");
      
   ReleaseComObject(pr);
</cfscript>

Please read the README.TXT file that comes with the ActiveX DLL file for more details of the COM interface methods.

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