J’ai une nouvelle installation de Piwik qui est en version 1.12, donc à priori la dernière version disponible à ce jour. Mais déjà dans la version 1.11.1 je rencontrais ce problème. Les rapports envoyés par mail au format PDF ne s’ouvrent pas avec mon lecteur de PDF (kpdf sous Debian GNU/Linux). En regardant de plus près le message d’erreur il semblait qu’il se passait quelque chose de pas frais en fin de fichier PDF.
J’ai ouvert avec un éditeur hexadécimal un de ces rapports défectueux et un pdf que je peux ouvrir. Quand je regarde la fin des fichiers je vois qu’il manque quelque chose sur le PDF Piwik.
Pour prendre un exemple voici la fin (je le met en ascii et pas en hexadécimal c’est plus lisible) d’un fichier PDF envoyé par Piwik :
>>.startxref.42922
Et voici la fin d’un fichier PDF généré sur un de mes sites avec une bibliothèque PDF en ph (donc une production comparable à celle de Piwik), le fichier se termine ainsi :
>>.startxref.289967.%%EOF.
Si je rajoute le end of file précédé des deux % (.%%EOF. ) dans mon fichier piwik je peux alors l’ouvrir et il se comporte normalement.
Comme je ne suis pas un spécialiste du PDF je voulais savoir si quelqu’un avait déjà rencontré cette erreur et s’il y avait une parade ?
Est-ce que l’erreur pourrait venir de la transmission par mail où la conversion du document en base64 pourrait corrompre la fin du fichier ? Dans mon ancienne installation les PDF étaient correctement générés.
Comment obtenir le fichier PDF généré par Piwik avant son envoi par mail (ce serait le moyen de savoir si c’est la génération PDF qui pêche ou la transmission par mail) ?
les rapports ouvrent pour moi dans ubuntu, sur windows, mac… Si tu trouves le bug en particulier cela m’interesse, mais c’est peut etre un bug (ou missing feature) dans ton lecteur pdf?
Si j’ouvre le fichier sur le Mac de mon épouse, avec Acrobate (la version complète officielle d’Adobe, pas juste le reader), j’ai un message disant que le fichier est endommagé mais qu’il va le réparer. Et en effet il parvient à l’afficher, mais cela confirme que le fichier pdf n’est pas conforme.
Pourrais tu faire un dump sur la fin d’un des fichiers que tu reçois et comparer avec un autre pdf ne venant pas de Piwik. Voici le dump de la fin du fichier que je viens d’ouvrir sous Acrobat tel qu’il m’arrive
Celui-là s’ouvre sans problème sous Kpdf et KGhostView. Il a modifié la fin du fichier et on voit qu’il a rajouté le %%EOF.
Le fichier qui me parvient est donc bien tronqué. Si tu peux regarder sur les fichiers que tu reçois. Peut-être que ton reader est plus permissif que Kpdf en ce qui concerne les erreurs pdf. Si tu as la même erreur il faudra essayer de voir si cela vient de la transmission ou de la génération du pdf.