Extension:Collection/PDF Writer

Overview
mwlib.rl is a python library for writing pdf documents from MediaWiki articles which were parsed by the mwlib library.

See this press release Wikis Go Printable for more information on this project.

No Installation required !
The PDF Writer can run standalone on a server and provide PDF generation for multiple MediaWiki instances. A server for public testing and low traffic Wikis runs at http://tools.pediapress.com.

All you need is the Collection extension which is configured to use this server by default.

Example
[[Media:Solar system final.pdf|Solar system, example article from the English language Wikipedia, rendered as PDF using the PediaPress technology.]]

Technical
The PDF Writer uses the Python Reportlab libraries to generate PDF based on a DOM derived from parsing mediawiki-markup using the mwlib parser. The Collection Extension can be used to select and manage articles that shall constitute the resulting PDF.

Source
mwlib.rl is copyrighted by PediaPress and is distributed under a BSD license (see the included README.txt for details).

Using easy_install
Make sure, you have the needed environment. On Debian systems:

apt-get install g++ perl python python-dev python-setuptools python-imaging python-lxml libevent-dev

Simply download and install mwlib with easy_install:

easy_install mwlib && rehash

RPM
RPM based Distros that have yum - just do : yum search mwlib,  then do : yum install  mwlib fyi: mwlib has some depedencies which makes it more hard to compile from scratch.

Custom render server
For the execution of a custom render server (you have a local mediawiki instance i.e), you need to install mwlib as stated before and then follow the instructions here. In my particular experience, the execution order for the commands must be: mw-qserve nserve.py nslave.py --cachedir ~/cache/ postman.py

You can put them in a shell script for make the start process more easy. If you use these default commands, you'll have a render server listening on 127.0.0.1:8899, but isn't just that simple to figure out configuring your LocalSettings.php if you are running your MediaWiki instance on localhost.

For PDF generation to works, you have to set the following variables in LocalSettings.php: //Your MediaWiki server (beginning of the file) $wgServer=" http://LAN_IP | PUBLIC_IP | HOST_NAME"; /* Note: localhost, 127.0.xx, 192.168.xx won't work as far as I know (from the mailing list) for security reasons I successfully test with $wgServer=" http://10.0.0.110 "; */ //This goes after including Collection extension, usually at file bottom (localhost is also allowed here) $wgCollectionMWServeURL = ' http://127.0.0.1:8899 '; The latest instructions where obtained from the mailing list archives and putted here for better understanding for first time users

Mailing List
We have set up a google group for discussion of mwlib.rl. You can subscribe to it via email: mailto:mwlib-subscribe@googlegroups.com.

Help Needed
Please help us translate some strings used in the generated PDF. The process of internationalisation is done at translatewiki.net. We appreciate your help there.

Programs
mwlib installs the following programs:


 * mw-render
 * generates documents in formats like PDF or ODF from MediaWiki articles


 * mw-zip
 * generates ZIP files from MediaWiki articles that contain all information to produce some output document like a PDF file


 * mw-serve
 * starts a render server that allows the Collection extension to render documents from article collections

Configuration
If your MediaWiki has the MediaWiki API enabled, you just specify the base URL of the wiki as the configuration. For example using the English Wikipedia, this $ mw-render --config http://en.wikipedia.org/w/ --username='xxxx' --password='yyyy' --output test.pdf --writer rl Physics will produce a PDF document containing the article Physics.

Customization
It is possible to customize the resulting PDFs - for more information check the README.rst

Other Approaches

 * Extension:Pdf Book
 * Extension:Pdf Export
 * Extension:Wiki2LaTeX