Non fidatevi del lettore PDF di Ubuntu 10.04

Uso Ubuntu da molto tempo, penso almeno 5 anni. Ubuntu usa l’ambiente desktop Gnome, che è sobrio e funzionale per i miei gusti. Fin qui tutto ok, di recente però, iniziando a seguire l’università, è sorto un problema con il lettore PDF di Gnome (che quindi è di default su Ubuntu), ovvero Evince.

Una cosa fantastica dell’università è che tutti i corsi solitamente hanno un sito web di riferimento dal quale si possono scaricare materiali didattici e le slide delle lezioni, nel caso vengano svolte proiettando con OpenOffice o PowerPoint appunto. Io ad esempio seguo il corso di architettura degli elaboratori. Non solo dopo ogni lezione escono quasi subito le slide da poter scaricare e ripassare, ma oltretutto l’insegnante le pubblica in formato PDF.

La cosa mi è subito piaciuta ovviamente, evito di avere a che fare con slide in formato PPT da dover convertire, magari si visualizzano male alcune cose, eccetera. :)

Evince si è sempre comportato bene con i file PDF. Fiducioso, ho subito scaricato le prime slide e le ho aperte per darci un’occhiata. Prendiamo come esempio la lezione sui circuiti combinatori (download). Scorrendo le slide ho visto subito che qualcosa non andava, lo sfondo non era lo stesso visto in aula, e per di più in alcune slide si vedevano strani rettangoli… Il peggio io l’ho avuto su questa slide:

È scontato dire che non si può studiare così! Ho cercato di avere qualche informazione in più, e ho scoperto che ImageMagick mi poteva dare una descrizione molto dettagliata del file tramite il comando “identify“. Detto fatto, ho usato il comando sul file e tra varie informazioni è venuto fuori questo:


**** This file had errors that were repaired or ignored.
**** The file was produced by:
**** >>>> Mac OS X 10.5.8 Quartz PDFContext <<<<
**** Please notify the author of the software that produced this
**** file that it does not conform to Adobe's published PDF
**** specification.

Dopo aver notato la cosa ho scritto una email all’insegnante che molto gentilmente ha fatto diverse prove mandandomi altri PDF rigenerati da capo, con altri parametri eccetera. Purtroppo nulla da fare. Alla fine ho deciso di lasciar perdere e trovare qualche maniera per arrangiarmi, senza disturbare nessuno.

Ho scoperto di poter riparare facilmente il PDF con PdfTk, semplicemente facendo una “unione” del solo file interessato:

pdftk broken.pdf output fixed.pdf

Dopo questa operazione il file che usciva era perfetto secondo ImageMagick, ma Evince continuava imperterrito a mostrare male il file. A questo punto mi sono per un momento rassegnato a installare il lettore ufficiale di Adobe, che oltre ad essere proprietario (quando esiste un lettore PDF libero apposta) pesa pure 150 MB sul disco, una cosa assurda!

Il file chiaramente veniva letto in modo perfetto (ovvio, Adobe Reader è il suo lettore nativo)… Però non mi sono arreso. Ho provato tutti i lettori PDF disponibili nei repository di Ubuntu tanto per cominciare, ovvero questi (oltre a Evince):

Questi sono i momenti in cui adoro avere una macchina virtuale con Itis Linux per fare i test di tutti i tipi che mi saltano in mente. :P Aggiungo che non ho idea di cosa ci faccia un lettore così vecchio e deprecato come ViewPDF, ma sinceramente non mi interessa. Il risultato dei test non è stato proprio stupendo…

  • Evince no
  • Okular OK
  • Xpdf OK
  • Gv no
  • ePDFViewer no
  • ViewPDF no

Promettente vero? :D Solo Okular e Xpdf visualizzano bene il file. Xpdf purtroppo ha una grafica terribilmente spartana e pochissime funzioni: un incubo se dovessi studiarci! ;)

Per fortuna Okular invece è un ottimo software: renderizza perfettamente i PDF delle lezioni (anche senza fare il fix con PdfTk), ha le funzioni che mi servono ma non troppe (nonostante sia un software KDE), è libero ed infine è pure molto leggero (mi sembra circa 14 MB contro i 150 di Adobe Reader). Ecco qui la stessa slide mostrata perfettamente da Okular:

Certo anche usando Okular comunque ho installate due applicazioni per fare le stesse cose quando ne basterebbe una, ma è ben diverso che avere Adobe Reader (pesantissimo) o Xpdf (grafica completamente diversa e zero funzioni). Preciso che ho subito questi problemi con Ubuntu 10.04 (figuratevi se tra Linux Day e Itis Linux avevo tempo di aggiornare :P ). Dato che questo articolo è finito pubblicato per sbaglio prima di averlo completato, ho ricevuto la segnalazione di alcuni lettori che mi fanno presente che con Ubuntu 10.10 (ad esempio) il problema non si pone. La cosa ovviamente mi fa piacere, in ogni caso vi consiglio di provare Okular, potrebbe riservarvi piacevoli sorprese. ;)

34 thoughts on “Non fidatevi del lettore PDF di Ubuntu 10.04

  1. Anch’io visualizzo correttamente il file (Ubuntu 10.10, Evince 2.30.1). Se anche il file avesse degli errori, non vedo cosa possa farci EVince. Lo stesso ImageMagick dice che il “colpevole” sarebbe il creatore del file.

  2. Ringrazio tutti quanti hanno commentato sopra (a mia insaputa visto che il post era in bozza ed è finito pubblicato per errore). :) Mi avete permesso di integrare l’articolo con qualche informazione in più… Peccato, sarà un bug della versione di Poppler, libreria usata da Evince.
    Comunque sia nessun problema di download, questo è sicuro. :) Vi prego di leggere il post completo ora, così avete una panoramica migliore della situazione. ;) Grazie.

  3. io ho avuto un problema simile con un documento “importante”: la busta paga.
    Però ricordo che anche okular in quel modo non funzionava, quindi l’unica vera soluzione è stata mettere adobe, che però è davvero troppo troppo troppo pesante.
    Dopo un paio di mesi il problema è stato risolto, non so se tramite aggiornamenti miei o del server.

  4. Io invece confermo che evince lo mostra male… poppler versione 0.14.3 ed evince 2.32.0
    nn ho provato per ora con altri lettori ma evince sto sfondo proprio nn lo sopporta!

  5. Io ho provato su:
    - Ubuntu 9.10 x64 con compiz attivo (Evince 2.28.1 e Poppler 0.12.0): tutto ok
    - Maverick x64 (driver proprietario nVidia con e senza compiz attivato) e lo mostra male…
    - Netbook con Maverick Netbook Edition (scheda grafica integrata intel e mutter): male anche qui
    - Macchina virtuale VirtualBox con Ubuntu 10.04 x64 con Guest Additions installate e compiz attivo: tutto ok
    - Macchina virtuale VirtualBox con Maverick x64 con Guest Additions installate e compiz attivo: male
    - Macchina virtuale VirtualBox con Maverick x86 senza Guest Additions installate e compiz inattivo (ovviamente): male

    Ora, vista la varietà di test (e il fatto che cambiando il fattore di zoom gli artefatti cambiano), a me viene da pensare più ad un qualche problema delle routines di disegno a schermo dell’ultima versione di evince/poppler abbinati a qualche opzione attivata nelle 2 ultime releases di Ubuntu (tipo argb o qualche altra diavoleria :) )
    Se fosse un problema di interpretazione del file pdf, variando lo zoom gli artefatti verrebbero solo zoomati, non cambiati in modo radicale (almeno a me succede così…)

  6. @ Giuseppe Savo, che brutto che dev’essere stato!!!
    @ DanyTheBat, non ho parole, hai fatto un sacco di test. ;) Grandissimo! Anche io penso sia qualche problema del genere, però rimane il fatto che sui documenti visualizzati malissimo non si riesce a studiare… Avresti mica voglia di provare Okular sugli stessi sistemi? :P
    @ Riccardo Ferrazzo, anche tu hai studiato/stai studiando lì! :) Comunque ho appena scoperto il tuo blog e deciso di sbatterlo seduta stante in Google Reader, c’è roba troppo interessante. ;)

  7. Sei tornato a scrivere :D

    Vorrei dire una cosa.
    Se si creano file PDF da un nostro codice, per esportare qualcosa, tipo un software di una banca che esporta dati su file PDF, di solito io uso iText, nella creazione si possono inserire molte features dalle immaggini alla tabulazione, ecc.
    Queste features non tutti i lettori PDF open source riescono a leggerli (questo il motivo dei problemi del post), perciò quello che si crea non sempre è ciò che si vede.
    Riussumento per vedere esattamente cosa si crea la soluzione è usare Acroread, senza pensare alle solite questioni codice proprietari eccetera, qua si parla di creare qualcosa di esatto, perciò meglio essere sicuri.
    Sottolineo solo certi visualizzatori per linux non supportano tutte le features.

  8. Mai avuto problemi con i PDF creati da iText. Ad ogni modo esistono varie versioni di PDF, una è pubblica, altre sono proprietarie “deviazioni” dello standard che Adobe stessa ha pubblicato. Non è solo un discorso di proprietario, è assurdo che un lettore pesi 150 mb… :)

  9. Fino ad ora nemmeno io ho avuto problemi, ma nel mondo dell’informatica non si sa mai. Nel mondo Enterprise una procedura che esporta PDF che non vengono letti da certi lettori non è accettabile, forse se una software house se ne frega (come molte) e dice esplicitamente di usare AdobeReader, il problema è spostato al lato cliente e non allo sviluppatore, perciò dipende dal modo di vedere la cosa.

    Però concordo 150 MB sono parecchi (per il solo lettore), ma Adobe Reader viene usato anche in ambiente grafico e i tool che deve supportare sono davvero tanti. Poter aprire esportazioni fatte dalle Suite CS4 (mi sembra siamo alla CS5) sono mostri di PDF. Io sono ancora alla CS per vecchie licenze, ma adesso siamo sulla scala di 1:10 di dimensione di un PDF alla massima qualità esportato da Adobe Illustrator CS4 confronato con un CS.

    Ma si cmq l’importante è poterlo aprire poi facendo degli esperimenti, con il metodo scientifico, questo si questo no, hai visto che con Okular non hai problemi, perciò “w Okular” :D

  10. @Lazza, soo l’amico di paolo, qualche volta ci si vede in corriera, leggevo questo blog di tanto in tanto (soprattutto per la questione del rimborso windows) ma solo ora mi sono accorto che ci sei tu dietro, complimenti!

  11. Aggiornamento
    Ho creato uno script in python (dipendente da wx e python-poppler) che mi disegna in una finestra gtk il pdf incriminato: (su maverick x64) sebbene non siano presenti gli artefatti “variabili” come in evince, all’apertura del file si vede, al posto del gradiente di sfondo, una campitura fatta di righette rosse… cambiando il fattore di zoom queste scompaiono e non si ripresentano più (neanche tornando allo zoom originale) ma il gradiente di sfondo non viene mai disegnato.
    Scartabellando, ho scoperto che (su questo particolare pdf), poppler ed evince hanno problemi con il tag “/ShadingType” tipo 2 (che sembra però essere stra-supportato dalla notte dei tempi…): boh!? (in passato c’erano stati problemi con la versione di evince precedente alla 2.28, ma sono stati risolti… dicono)
    Ho pensato quindi di farmi uno scriptino (sempre in python) per rimuovere i gradienti incriminati e mi sembra che funzioni benino… e richiede solo python-pypdf!
    Se vi interessa potete scaricarlo da http://digilander.libero.it/danythebat/pdfclean.py
    Se conoscete (anche poco) python ed avete necessità di rimuovere elementi “estranei” da un file pdf (logo, filigrane, ecc) o di aggiungerne, o di creare da zero un pdf che contiene testo, immagini, elementi vettoriali, potete modificare lo script in 2 secondi e divertirvi!

  12. Fantastico! In effetti avevo in mente di fare un post su PyPDF per quanto riguarda il crop dei PDF, però non anticipo altro. :P Sicuramente menzionerò il tuo script. ;)

  13. Io ho aggiornato a 10.10 e vedo benissimo i file, ho un problema invece quando voglio mettere 6 slide in una pagina e creare il pdf nuovo usando stampa su file, il risultato è che si le stampa ma su una pagina ma aggiunge anche delle sgradevoli linee di separazione tra slide, okular come si comporta a rigurado?

  14. Ho provato casa e in università. Comunque a questo punto non ha tanta importanza, siamo a due versioni dopo di Ubuntu e ormai ho ripreso a usare Evince. Non mi visualizza ancora benissimo lo sfondo di quei file, ma è meglio di prima. Poi adesso sono al secondo anno e quel corso l’ho finito. :)

Che cosa ne pensi?

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...