AviGNU - Mot-clé - vapiGroupe d'utilisateurs de logiciels libres du Grand Avignon2024-01-02T17:40:01+01:00Administrateururn:md5:8ed776652564792dba453bac492a5a6cDotclearContourner le bug #65002 dans Poppler avec Valaurn:md5:ccb3c8630fa84803416c983d6914c9072013-09-27T12:47:00+02:002013-09-27T12:45:29+02:00Olivier DuchateauProgrammationGtk3PDFpoppler-glibValavapi <p>Récemment, je me suis mis à apprendre le langage <a href="https://wiki.gnome.org/Vala">Vala</a> (je ne connais pas encore toutes les suptilités), et en essayant de comprendre <a href="https://wiki.gnome.org/Vala/PopplerSample?highlight=%28%5CbVala%2FExamples%5Cb%29">un</a> des <a href="https://wiki.gnome.org/Vala/Examples">exemples</a>, la compilation a échoué.</p>
<p>J'ai trouvé, qu'il avait déjà été mentionné <a href="https://bugs.freedesktop.org/show_bug.cgi?id=65002">ici</a>.</p>
<p>En parcourant le fichier <code>poppler-glib.deps</code>, on constate qu'il y a une référence à Gtk+2 (en réalité c'est <a href="https://developer.gnome.org/gdk2/stable/">GDK 2</a>).</p>
<p>Donc si on remplace le nom du <em>package</em> <del><strong>gdk-2.0</strong></del> par <strong>gdk-3.0</strong> tout fonctionne correctement.</p>
<p>Pour éviter de modifier un fichier sur le système, le plus simple consiste à le copier <sup>[<a href="http://avignu.tuxfamily.org/index.php?post/2013/09/27/Contourner-le-bug-65002-dans-Poppler-avec-Vala#pnote-85-1" id="rev-pnote-85-1">1</a>]</sup> (dans le dossier où se trouve notre programme vala).</p>
<pre>
$ cp /usr/share/vala-0.20/vapi/poppler-glib.* .
</pre>
<p>On fait le remplacement, et si l'on a besoin de compiler avec le support de <a href="http://poppler.freedesktop.org/">Poppler</a>, voici les options qu'il faut passer au compilateur.</p>
<pre>
$ valac --vapidir=. --pkg poppler-glib ...
</pre>
<p>Pour conclure, je vous présente un programme,qui va rechercher des informations contenu dans un fichier <acronym title="Portable Document Format">PDF</acronym>.</p>
<p>Pour le compiler.</p>
<pre>
$ valac --vapidir=. --pkg poppler-glib --pkg glib-2.0 --pkg gio-2.0 pdf-info.vala
</pre>
<p>Si tout se passe bien (ne faites pas attention aux <em>warnings</em>), on le lance de cette manière.</p>
<pre>
$ ./pdf-info -h
Usage:
pdf-info [OPTION...]
Help Options:
-h, --help Show help options
Application Options:
-f, --filename Path to PDF file
$
</pre>
<p>Quelques exemples de résultats possibles</p>
<pre>
$ ./pdf-info -f ~/Documents/packaging-tutorial.fr.pdf
title: Tutoriel : la construction de paquets Debian
Nb pages: 78
pdfTeX-1.40.13
$
$ ./pdf-info -f ~/Téléchargements/accuseReception.pdf
No title
Nb pages: 2
Apache FOP Version 1.0
$
$ ./pdf-info -f ~/Téléchargements/BSD_08_2013.pdf
title: BSD Magazine
Nb pages: 48
Adobe PDF Library 9.9
$
</pre>
<div class="footnotes"><h4 class="footnotes-title">Note</h4>
<p>[<a href="http://avignu.tuxfamily.org/index.php?post/2013/09/27/Contourner-le-bug-65002-dans-Poppler-avec-Vala#rev-pnote-85-1" id="pnote-85-1">1</a>] La version de vala peut être différente, esayez <code>find /usr/share/ -maxdepth 1 -type d -name 'vala-*' -print</code></p></div>