Pour les besoins d'un client j'ai eu besoins d'extraire le pages du Wiki d'un projet Redmine en pdf. J'ai donc cherché comment générer simplement les fichiers pdf. Par défaut les export du wiki de Redmine se font en html ou txt.
Mise à jour de Redmine
Par rapport à mon article précédent Installation Redmine il va falloir faire une petite mise à jour. Le plugin de génération de pdf ne fonctionne pas avec la version 1.0.1 fournie dans la distribution Debian Squeeze. On va mettre à jour les dépôts dans le fichier /etc/apt/sources.list :
#
# Squeeze Backports
#
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
Puis :
# apt-get update
On installe la version de Redmine fournie dans les backports :
# apt-get install redmine=1.1.2-2~bpo60+1 redmine-mysql=1.1.2-2~bpo60+1
Installation de wkhtml2pdf
La version Debian de wkhtml2pdf pose problèmes, il faut donc l'installer à la main. On a besoins d'une petite dépendance :
# apt-get install libxrender1
Puis :
# cd /usr/src
# wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.10.0_rc2-static-amd64.tar.bz2
# tar xvjf wkhtmltopdf-0.10.0_rc2-static-amd64.tar.bz2
# mv wkhtmltopdf-amd64 /usr/bin/
Plugin redmine_pdf_wiki
Installation
On a tout ce qu'il nous faut maintenant pour installer le plugin d'export en pdf :
# cd /usr/share/redmine/vendor/plugins
# git clone git://github.com/amartel/redmine_pdf_wiki.git
Modifier le fichier /usr/share/redmine/app/views/wiki/show.rhtml ajout de la ligne :
<%= f.link_to('PDF', :url => {:controller => 'wikitopdf', :action => 'export', :page => @page.title, :id => @project}) %>
vers la ligne 50, après :
<%= f.link_to 'HTML', :url => {:page => @page.title, :version => @content.version} %>
<%= f.link_to 'TXT', :url => {:page => @page.title, :version => @content.version} %>
On utilise le module Apache Passager, il faut rajouter un élément de configuration pour celui-ci. On dois modifier le fichier /etc/apache2/mods-available/passenger.conf
<IfModule mod_passenger.c>
PassengerRoot /usr
PassengerRuby /usr/bin/ruby
PassengerUseGlobalQueue on
</IfModule>
On peut alors redémarrer Apache.
Configuration
Aller dans Administration / Plugins / WikiToPdf plugin / Configurer
Command line :
/usr/bin/wkhtmltopdf-amd64 --print-media-type --no-outline --disable-external-links --disable-internal-links -n --output-format pdf --load-error-handling ignore --user-style-sheet /usr/share/redmine/vendor/plugins/redmine_pdf_wiki/pdf.css
Temp dir: /tmp Et voilà le tour est joué. On peut maintenant extraire chaque page du wiki en PDF.