Prince (software)
   HOME

TheInfoList



OR:

Prince (formerly Prince XML) is a computer program that converts
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable ...
and
HTML The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaSc ...
documents into PDF files by applying Cascading Style Sheets (CSS). Prince is a commercial product, which is free to download and use for non-commercial purposes. Prince supports all common web standards, including HTML, CSS and JavaScript, through its own code. That is, Prince is not based on a
browser engine A browser engine ( also known as a layout engine or rendering engine) is a core software component of every major web browser. The primary job of a browser engine is to transform HTML documents and other resources of a web page into an interacti ...
, but implements its own engine. Prince can generate accessible PDFs conforming to the PDF/UA profile (ISO 14289, the International Standard for accessible PDF technology) that can be used by people with assistive technologies. Prince supports many languages, including Thai, Indic scripts (Hindi, Bengali, Tamil, etc.) and right-to-left scripts like Arabic and Hebrew. Prince is developed by YesLogic, a small company based in Melbourne, Australia. Since 2004,
Håkon Wium Lie Håkon Wium Lie (born July 26, 1965) is a Norwegian web pioneer, a standards activist, and the Chief Technology Officer of Opera Software from 1998 until the browser was sold to new owners in 2016. He is best known for developing Cascading Sty ...
, the co-creator of CSS, has been chairman of the board.


History

In April 2003, Prince 1.0 was released, with basic support for
XHTML Extensible HyperText Markup Language (XHTML) is part of the family of XML markup languages. It mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which Web pages are formulated. While HTML, prior ...
, Cascading Style Sheets (CSS),
Scalable Vector Graphics Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium sinc ...
(SVG), and arbitrary
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable ...
. This first version was a command-line program that supported Microsoft Windows and
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
; there was no
graphical user interface The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inst ...
for Windows yet. In December 2005, Prince 5.1 passed the
Acid2 Acid2 is a webpage that test web browsers' functionality in displaying aspects of HTML markup, CSS 2.1 styling, PNG images, and data URIs. The test page was released on 13 April 2005 by the Web Standards Project. The Acid2 test page will be ...
test from the
Web Standards Project The Web Standards Project (WaSP) was a group of professional web developers dedicated to disseminating and encouraging the use of the web standards recommended by the World Wide Web Consortium, along with other groups and standards bodies. Foun ...
.Prince 5.1 Passes Acid2
Web Standards Project announcement, December 10, 2005
It was the third user agent to pass the test, after Safari and
Konqueror Konqueror is a free and open-source web browser and file manager that provides web access and file-viewer functionality for file systems (such as local files, files on a remote FTP server and files in a disk image). It forms a core part of t ...
. In June 2012, Prince 8.1 added support fo
HTML5
In subsequent releases, CSS support has steadily been extended, both to have comparable support with web browsers (such as
Opera Opera is a form of theatre in which music is a fundamental component and dramatic roles are taken by singers. Such a "work" (the literal translation of the Italian word "opera") is typically a collaboration between a composer and a libr ...
and
Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current ...
), and to add support for print-specific features, like page breaks and footnotes. Prince is available for several platforms, including
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ser ...
,
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
,
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
, FreeBSD, and Solaris. Wrappers are available for
Java SE Java Platform, Standard Edition (Java SE) is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE). The platform uses Ja ...
,
.NET Framework The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
,
ActiveX ActiveX is a deprecated software framework created by Microsoft that adapts its earlier Component Object Model (COM) and Object Linking and Embedding (OLE) technologies for content downloaded from a network, particularly from the World Wide We ...
,
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group. ...
,
Ruby on Rails Ruby on Rails (simplified as Rails) is a server-side web application framework written in Ruby under the MIT License. Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and we ...
and
Node.js Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript code o ...
to help integrate Prince into websites and apps.


Technical summary

Prince was developed primarily using the Mercury functional logic programming language. The main driving force behind Prince is the standard CSS3-pagedCSS Paged Media Module Level 3
W3C
that integrates paged media (including PDF) layout specification with any other W3C technologies:
HTML4 The HyperText Markup Language or HTML is the standard markup language for documents designed to be displayed in a web browser. It can be assisted by technologies such as Cascading Style Sheets (CSS) and scripting languages such as JavaScri ...
,
HTML5 HTML5 is a markup language used for structuring and presenting content on the World Wide Web. It is the fifth and final major HTML version that is a World Wide Web Consortium (W3C) recommendation. The current specification is known as the HTML ...
,
XHTML Extensible HyperText Markup Language (XHTML) is part of the family of XML markup languages. It mirrors or extends versions of the widely used HyperText Markup Language (HTML), the language in which Web pages are formulated. While HTML, prior ...
, and "free
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable ...
", working or not with
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, of ...
. More experimental facilities for print needs (for example, footnote policies, specifying the size of the bleed area of the page when crop marks are enabled, creating running page headers and footers and similar) are being standardized in th
Generated Content for Paged Media (css-gcpm-3)
CSS module. Prince has good support for CSS, with a print focus: better than web browsers for print-specific CSS modules such as the aforementioned css-page-3 and css-gcpm-3; while support other modules is good relative to other user agents not using a web browser engine but not always as well as web browsers: for example, CSS Flexible Box Model was added in Prince 12 (2018), whereas CSS Grid Layout (css-grid-1) is not yet present in Prince 14. Prince supports most of ECMAScript 5th edition, but not strict mode. Later editions of ECMAScript are largely not supported.


References


Further reading


Making accessible tagged PDFs with Prince
16 July 2019 * *
Interview with Michael Day of Prince XML
by Olimpiu Metiu, Page 33, Published at: June 28, 2010, Rails Magazine
Prince XML: Generating High Quality PDFs from HTML + CSS
15 Nov 2007, GoogleTechTalks, YouTube Video


External links

* {{ebooks Typesetting software XML software 2003 software Typesetting programming languages