Wiki Redmine : export en pdf

 

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.