Skip to main content

Come scegliere un modulo Drupal 7 per la visualizzazione di PDF

Scegliere un Tema su Nuked - Clan (Aprile 2025)

Scegliere un Tema su Nuked - Clan (Aprile 2025)
Anonim

Di recente, un cliente mi ha chiesto di aggiungere una nuova funzionalità al sito Drupal dell'azienda: visualizza i file PDF nel browser. Mentre sfogliavo le opzioni su drupal.org, mi sono reso conto che questa era l'occasione perfetta per documentare il mio attuale processo decisionale quando ho scelto un nuovo modulo. Sto sempre dicendo di scegliere i moduli con saggezza, ma ora puoi vedere come penso che funzioni nella vita reale.

Definisci quello che vuoi

Il primo passo è definire ciò che vuoi. Nel mio caso, volevo:

  • La possibilità di visualizzare i file PDF in un browser Web, simile a questo esempio. Il cliente avrebbe caricato i PDF della newsletter aziendale e i visitatori sarebbero stati in grado di leggerli facilmente.
  • Il sito è Drupal 7, quindi il modulo dovrebbe corrispondere a quella versione principale. (Drupal 7 è uscito da un po 'ora, quindi se uno sviluppatore di moduli non è ancora uscito con una versione di Drupal 7, probabilmente no.)
  • Anche se il client non ha specificato questo, volevo anche evitare di fare affidamento su un servizio di terze parti. Per i video, sono felice di pubblicare i contenuti su YouTube o Vimeo e quindi di incorporarli in un sito Drupal, ma per i PDF, non pensavo che la possibile esposizione aggiuntiva sarebbe superiore al potenziale fastidio, alla rottura e alle spese. Tuttavia, ero aperto a un servizio di terze parti se fosse l'unica opzione.
  • Nonostante il mio desiderio di evitare un servizio di terze parti, sapevo che la mia scelta avrebbe probabilmente richiesto un Javascript di terze parti biblioteca . Anche se ciò aggiungerebbe un ulteriore passo per gli aggiornamenti futuri, generalmente mi sento meglio nell'eseguire la mia copia di una libreria piuttosto che affidarmi a un servizio di terze parti.
  • Volevo mantenere il modulo il più leggero e specifico possibile. Non volevo essere coinvolto in un modo radicalmente nuovo di gestire o organizzare file multimediali. Volevo qualcosa di più simile a Colorbox, che ingrandisce le immagini per una migliore visualizzazione, ma rimane completamente indipendente da come scegli di gestire i file di immagine. Avevo la sensazione che questa libreria fosse pdf.js, ma ero aperto ad altre possibilità.
  • Come al solito, volevo seguire le linee guida generali per la scelta di un modulo Drupal. Fondamentalmente, scegli un modulo che è già stato utilizzato da poche migliaia di persone (se possibile) per un po ', con un minimo di dipendenze, che sembra essere mantenuto da uno sviluppatore attivo che ha intenzione di continuare a supportare il progetto nel futuro e non lo fa t richiedono una tassa di licenza.

Cerca su Drupal.org

Con questi obiettivi in ​​mente, il passo successivo era una semplice ricerca su Drupal.org. È tempo di saltare nella sfera della bontà del modulo.

Pagina "Confronto" per moduli PDF

La mia prima fermata era (o avrebbe dovuto essere), questa pagina: un confronto tra i moduli di visualizzazione PDF. Drupal.org ha un'eccellente tradizione di pagine di documentazione che descrivono i pro ei contro di vari moduli nello stesso spazio. C'è una lista centrale di pagine di confronto, ma sono anche disseminate in tutto il sito.

La pagina di confronto PDF includeva quattro moduli di visualizzazione PDF. Li coprirò qui, così come un paio di altri che ho trovato dalla ricerca. Inizierò con i candidati che ho deciso di saltare.

Ora analizziamo le specifiche del motivo per cui questi moduli hanno funzionato (o non hanno funzionato) per questo progetto.

File Viewer

File Viewer utilizza Internet Archive BookReader, che mi ha intrigato perché sono un drogato di Internet Archive. Ogni volta che vado lì, sento il solletico della paura e travolgo le montagne di libri che posso strappare dall'etere.

Detto questo, il sito dimostrativo mi è sembrato un po 'brutto. Potrei conviverci, ma dubito che il mio cliente lo farebbe, quandopdf.js sembra molto più elegante.

Inoltre, a una seconda occhiata alla pagina del progetto, ho visto il grande annuncio in grassetto ai vertici:Questo modulo è stato spostato formalmente nel modulo PDF. Giusto. Con meno di 400 installazioni, l'unione con il più popolare modulo PDF (che copriremo tra poco), sembra una buona mossa. Non scaricare mai un modulo che è stato unito / spostato / abbandonato.

Formatter file di Google Viewer

Google Viewer File Formatter è quello che sembra: un modo di utilizzare Google Documenti per incorporare visualizzazioni di file nella tua pagina web. Sebbene mi piacesse la versatilità di Google Docs, uno dei miei obiettivi era rimanere indipendente da qualsiasi servizio di terze parti.

Inoltre, questo modulo ha avuto meno di 100 installazioni.

Visualizzatore documenti Ajax

Sebbene "AJAX" sia un termine Javascript generico, Ajax Document Viewer si è rivelato basato su uno specifico servizio di terze parti. Solo circa 100 installazioni. Andare avanti…

Scald PDF

Scald PDF aveva solo 40 installazioni, ma dovevo dare un'occhiata, dato che era chiaramente parte di un progetto più ampio chiamato (sì) Scald. Come ha spiegato la pagina del progetto Scald: " Scald è un modo innovativo di gestireAtomi multimediali in Drupal. "

Quella frase ha sollevato due enormi bandiere rosse: "take innovativo" e la parola "Media" in coppia con "Atom". "Atom" era ovviamente una parola riproposta per "cosa", che la rendeva una bandiera rossa da sola. Drupal ha un debole per queste parole vuote: nodo , entità , caratteristica … Più la parola è generale, più i cambiamenti possono essere ampi.

Mentre scendevo, i miei sospetti erano confermati. Leggo affermazioni eccitate su come Scald avrebbe sostanzialmente reinventato il modo in cui gestivo Media sul mio sito.

Ora, la verità è che la gestione dei media di Drupal potrebbe usare un po 'di reinvenzione. Scald non è l'unico progetto ambizioso in questo spazio.Tuttavia, con meno di 1000 installazioni finora, non volevo entrare al piano terra.

Certo, a quest'ora il prossimo anno, Scald potrebbe essere il prossimo punto di vista. Quello sarebbe rock. Ma potrebbe anche essere abandonware, con una (piccola) traccia di siti rotti lasciati a piangere.

Per ora, volevo attenermi a una soluzione molto meno ambiziosa e pericolosa. Basta visualizzare i PDF, per favore. Questo è tutto ciò che stavo chiedendo.

Shadowbox

Shadowbox mi ha sorpreso: ha affermato di essere una soluzione unica per la visualizzazione di tutti i tipi di media, dai PDF alle immagini ai video. Questo non era così radicale come Scald, dal momento che si concentrerebbe solo su visualizzazione media senza introdurre concetti completamente nuovi come "Media Atoms". Ma mi piace già Colorbox, come ho detto. Non volevo dover ripensare a quella decisione.

Tuttavia, ho notato (con un gemito interiore) che con oltre16,000 installa, Shadowbox potrebbe essere un'alternativa più potente nello stesso spazio. io aveva dare un'occhiata.

Il modulo Shadowbox Drupal è fondamentalmente un ponte per una libreria Javascript, Shadowbox.js, quindi ho controllato il sito web della biblioteca. Lì, ho scoperto due motivi per andare avanti:

  • La biblioteca richiede un canone per uso commerciale. La commissione era abbastanza ragionevole, ma cerco di evitare software open source che non è gratuito.
  • Un'accurata ricerca delle FAQ ha rivelato che, contrariamente alla descrizione sulla pagina del modulo Drupal, i PDF lo sono non 100% supportato dalla libreria Shadowbox. Ops. Per fortuna ho controllato

I due contendenti: "PDF" e "PDF Reader"

Dopo aver eliminato il resto, sono giunto a due contendenti ovvi: PDF e PDF Reader

Questi due progetti presentavano somiglianze chiave:

  • Entrambi hanno quasi 3.000 installazioni, molto più delle alternative (ad eccezione di Shadowbox).
  • Entrambi hanno utilizzato la stessa libreria Javascript esterna,pdf.js.

E le differenze?

Lettore PDF aveva anche l'opzione per l'integrazione di Google Documenti. In questo caso specifico, ho pensato che il mio cliente potesse piacere, quindi mi è piaciuto avere l'opzione.

Nel frattempo, PDF è stato contrassegnato comeCerco il co-maintainer (s). Questo potrebbe essere un segnale che lo sviluppatore avrebbe presto abbandonato il progetto, ma d'altra parte, il commit più recente era una settimana fa, quindi almeno lo sviluppatore era ancora attivo.

D'altro canto, Lettore PDF è stato contrassegnato comeMantenuto attivamente, ma il commit più recente è stato un anno fa.

Senza un chiaro vincitore, ho deciso di testarli entrambi.

Test dei concorrenti

Ho testato entrambi i moduli su una copia del mio sito live. (Indipendentemente da come appare un modulo solido e innocuo, non provarlo prima su un sito live. Potresti distruggere l'intero sito.)

Ero prevenuto Lettore PDF , perché sembrava avere più opzioni (come Google Documenti) di PDF . Così ho deciso di provare PDF in primo luogo, per toglierlo di mezzo.

PDF Fail: Compilazione richiesta?

Tuttavia, quando ho installato PDF e leggiREADME.txt, Ho scoperto un problema che avevo visto ma ignorato nella pagina del progetto. Per qualche ragione, questo modulo sembra richiedere la compilazionepdf.js manualmente. Sebbene la pagina del progetto suggerisse che ciò non era necessariamente richiesto,README.txt suggerito che fosse.

Da Lettore PDF userei la stessa libreria esatta senza richiedere questo passaggio, ho deciso di provarlo prima di tutto. Se non funzionasse, potrei sempre tornare indietro PDF e prova a compilare manualmentepdf.js.

Lettore PDF: successo! Una specie di.

Quindi, finalmente, ci ho provato Lettore PDF . Questo modulo fornisce un nuovo widget per la visualizzazione di aFile campo. Si aggiunge un campo file al tipo di contenuto desiderato e si imposta il tipo di widget suLettore PDF. Quindi, si crea un nodo di questo tipo e si carica il PDF. Il PDF appare incorporato in una "scatola" sulla pagina.

È possibile provare diverse opzioni di visualizzazione modificando nuovamente il tipo di contenuto e modificando le impostazioni di visualizzazione per il campo.

Ho trovato che ogni opzione di visualizzazione aveva pro e contro:

  • Ildocumenti Google il lettore ha funzionato bene come embed, ma quando l'ho fatto clic per andare a schermo intero, mi sono ritrovato su una pagina di Google Docs che si scusava per il fatto che il mio limite di frequenza era stato superato. Ops. Forse questo sarebbe più affidabile se collegassi il modulo a un account Google Apps a pagamento, ma non mi sono preoccupato di scoprirlo, poiché ero abbastanza sicuro che il mio client non avrebbe gradito il display.
  • Ilpdf.js l'opzione ha funzionato meravigliosamente … su Firefox e Chrome. Ma quando ho acceso Internet Explorer, il box è apparso vuoto. Apparentemente, questo è un problema conpdf.js stesso, non il Lettore PDF modulo. Suppongo che avrei dovuto aspettarmelo, dato questopdf.js è sviluppato da Mozilla e Internet Explorer è … stesso. Tuttavia, rimasi deluso dal fatto che non avessi pensato di confermarlopdf.js In primo luogo, ha funzionato in modo affidabile su tutti i browser.
  • Ilincorporare l'opzione era la più affidabile. In realtà questo ha fatto funzionare Adobe Reader in una scatola sulla pagina web. Il mio Firefox ha ancora preferito correrepdf.js, ma penso che questa fosse un'impostazione del browser. In entrambi i casi, purché un visitatore avesse o Firefox o un visualizzatore di PDF come Adobe Reader, il PDF verrebbe visualizzato.

Quindi, alla fine, la mia soluzione era usare il Lettore PDF con ilIncorporare opzione di visualizzazione. Questa opzione mi consente di allegare un PDF a un nodo Drupal e di visualizzarlo in modo affidabile su una pagina Web Drupal.

Sfortunatamente, a volte "affidabile" non è abbastanza. Dopo tutta questa ricerca, ho dovuto prendere in considerazione un servizio di terze parti, dopo tutto.