PrintPDF is a front-end to GhostScript, allowing PDF documents to be produced more easily under RISC OS. It adds a new “PDF Printer” as part of Printers on the iconbar – using this, any application which can print to paper can now also create a PDF document with ease.

[Iconbar Screenshot]

A new “PDF” printer on the iconbar

Printing a file to PrintPDF will result in a "Create PDF" dialogue box opening so that the PDF can be saved to disc.

[PrintPDF Screenshot]

The options being set for a PDF file

More features of PrintPDF, including its ability to add bookmarks to a PDF document, control document title and author information, and join several files into a single PDF, can be found below.

Download PrintPDF
PrintPDF is released under Version 1.1 of the European Union Public Licence. Its source code can be found on GitHub, and copies can also be obtained from PackMan or the PlingStore.

In order to use PrintPDF, you will require:

  • a minimum of RISC OS 3.10,
  • the 32-bit Shared C Library (version 5.43 or later), which is a standard part of RISC OS 5 and can be obtained for other systems as part of the System Resources download from RISC OS Open Ltd,
  • the Nested Window Manager, which is a standard part of RISC OS  4, 5 or Six, or can be soft-loaded on RISC OS 3, and
  • GhostScript, which can be obtained from either Martin Wuerthner or Chris Gransden.

Features of PrintPDF

Control is provided over all aspects of the conversion. The version of PDF can be selected, and any images in the document can be optimised for the intended purpose of the file. Details of the document’s title, author, subject and keywords can be specified: these can be seen in many PDF viewers.

[Document Info Screenshot]

Setting a document’s title

PDF documents can be password protected and encrypted, and PrintPDF offers full control over the available options.

Adding bookmarks

PrintPDF allows bookmarks to be included in PDF documents, using its built-in bookmarks editor. Sets of bookmarks can be created and saved alongside the documents they relate to, then loaded back into PrintPDF when the PDF is created.

[Bookmark Editor Screenshot]

Editing bookmarks for a PDF document

Joining files

The PDF Queue allows several separate printouts to be merged together into a single PDF document. The separate files are printed separately to PrintPDF and queued; once assembled, they can be arranged as required and turned into a single PDF.

[PDF Queue Screenshot]

Handling queued PDFs

Version History

0.10 (10 July 2005)

First beta release.

0.20 (16 July 2005)

Second beta release.

  • Checks TaskManager on initialisation to prevent multiple copies running.
  • Seeing another copy of PrintPDF starting will open the Choices window.
  • Added "Show iconbar icon" option.
  • Compiled against OSLib 6.70, using GCC 3.4.4r3.
  • Corrected URL for website link.
  • Changed name of child tasks.

0.30 (4 September 2005)

Third beta release.

  • Writes GhostScript parameters to a file in PipeFS and calls *gs @ to get around command line length restrictions on RISC OS 3.
  • Opens a "conversion finished" pop-up when child task terminates.

0.31 (4 September 2005)

Update to third beta release.

  • The "conversion finished" pop-up can be selected from the Choices window.
  • While GhostScript is converting a file, the destination is given load and exec addresses of &DEADDEAD.

0.32 (10 September 2005)

Update to third beta release.

  • Added FileName option token, and use it to override FileName token in Messages file when set.
  • Full path and filename is remembered between conversions if "Reset for every conversion" option is off.

0.40 (19 May 2006)

Fourth beta release.

  • Default leafname changed to PDFFile/pdf.
  • Added preprocess option to allow files to be passed through *ps2ps before going on to *ps2pdf. This can help some files to work with GhostScript 8.5.
  • Added support for encrypted PDFs and security features in GhostScript 8.5.

0.41 (23 May 2006)

Update to fourth beta release.

  • Encryption windows grey out when no creation password is entered.
  • Changes to the manual and interactive help text.

0.45 (13 August 2006)

Update to fourth beta release.

  • Save filename preserved again unless "Reset every..." option is on (was lost in 0.40).
  • Included Richard Hallas' RISC OS 5 iconsprites designs.
  • Restructured options handling, making it the job of both conversion and choices code to maintain their own state rather than having conversion assume that choices will maintain state across calls.
  • Added support for retaining encryption and protection options between sessions.
  • All changes to convert dialogue are remembered for next conversion, even if Cancel is clicked (was inconsistent).

0.50 (9 November 2007)

Fifth beta release.

  • Support for EBook optimization added.
  • Printer optimization now sets -dUseCIEColor=true to prevent warnings from GhostScript.
  • Added 'custom' optimization option, to allow individual parameters to be set.
  • Some corrections to interactive help texts.
  • Some corrections to GhostScript command-line parameters.
  • Added Default file option to choices window.

0.51 (17 November 2007)

Update to fifth beta release.

  • Corrections to window templates for choices window.
  • Dragging a file to the 'Default file' field in the choices window sets the pathname.
  • Dragging a file to the file name field in the save PDF window sets the filename.
  • Included PDF600 printer definition, supplied by Bernard Veasey.

0.52 (6 April 2008)

Update to fifth beta release.

  • Support added for R-Comp's PDFsuite.

0.60 (11 October 2008)

Sixth beta release.

  • Print jobs can be queued and merged into a single PDF.
  • Handles open target files more gracefully.

0.61 (10 November 2008)

Update to sixth beta release.

  • Intermediate *ps2ps files correctly saved into queue (broken in 0.60).

0.70 (6 March 2010)

Seventh beta release.

  • Support for document information fields (title, author, subject, keywords) via the PDFMark interface.
  • Additional PDFMark file can be supplied to GhostScript for each conversion.
  • Manual updated to reflect PostScript3 driver setup details.

0.71 (20 April 2010)

Update to seventh beta release.

  • Fix escaping of ( and ) PDFDocEncoding strings.

0.80 (30 June 2010)

Eighth beta release.

  • Add bookmarks editor.

0.81 (1 July 2010)

Update to eighth beta release.

  • Remove incorrect page-position data from bookmarks.

0.82 (5 July 2010)

Update to eighth beta release.

  • Internal improvements and restructuring of code.
  • Autoscrolling bookmark editor window no longer opens queue pane.

0.83 (6 July 2010)

Update to eighth beta release.

  • Fix click/drag behaviour in bookmark editor.
  • Adjust close of bookmarks window conforms to Style Guide.
  • Warn of unsaved bookmarks and pending conversions before quit.

0.84 (9 July 2010)

Update to eighth beta release.

  • Merge printer sprites into application IconSprites and amend installation procedure.
  • Fix sprite selection on RISC OS 6.
  • Improve manual and interactive help.
  • Remove ineffectual PDF600 printer definition file.

0.85 (11 July 2010)

Update to eighth beta release.

  • Dragging bookmark files to the Create PDF window loads it and sets it as the current bookmarks for the conversion.
  • Internal improvements and restructuring of code.

0.86 (2 November 2010)

Update to eighth beta release.

  • Adjust-clicks on iconbar open the queue window.
  • New bookmarks can be created from the pop-up menu in the Create PDF window.
  • Correctly set bookmark page positions, and ignore broken YOffset values in offending bookmark file format.

0.87 (17 April 2011)

Update to eighth beta release.

  • Correct buffer length calculations and text truncation in PDF Doc Encoding conversions.

0.88 (4 August 2012)

Update to eighth beta release.

  • Extensive internal restructuring.
  • Rebuilt to confirm ARMv6 compatibility.

1.00 (14 October 2012)

First stable release.

  • Relicensed as Open Source.

1.10 (26 February 2016)

Second stable release.

  • Support added for controlling paper size (ticket #392).
  • Don’t assume that child task will start immediately, to avoid problems when launching Zap to handle task windows (ticket #356).

1.11 (5 March 2017)

Update to second stable release.

  • Fix !Help so that Help menu items work correctly.
  • Improve error handling when Templates or Sprites are missing on startup.

1.12 (22 October 2017)

Update to second stable release.

  • Bookmark title fields no longer overwrite each other when multiple files are open (ticket #619).
  • Remove all unbounded string operations from source code.

1.13 (28 July 2020)

Update to second stable release.

  • Correctly ensure that a C99-friendly version of the Shared C Library is present (ticket #635).
  • Use ResConf-style system variables to identify resources.