Skip to main content

Cum de a alege un modul Drupal 7 pentru vizualizarea fișierelor PDF

Our Miss Brooks: Convict / The Moving Van / The Butcher / Former Student Visits (Aprilie 2025)

Our Miss Brooks: Convict / The Moving Van / The Butcher / Former Student Visits (Aprilie 2025)
Anonim

Recent, un client mi-a cerut să adaug o nouă funcție pe site-ul Drupal al companiei: afișați fișiere PDF în browser. Pe măsură ce răsfoiesc opțiunile pe drupal.org, mi-am dat seama că aceasta a fost o șansă perfectă pentru a-mi documenta propriul proces de luare a deciziilor, deoarece am ales un nou modul. Întotdeauna spun să aleg module cu înțelepciune, dar acum puteți vedea cum cred că acest lucru funcționează în viața reală.

Definiți ceea ce doriți

Primul pas este să definiți ceea ce doriți. În cazul meu, am vrut:

  • Abilitatea de a vizualiza fișiere PDF într-un browser web, similar cu acest exemplu. Clientul va încărca PDF-urile din newsletter-ul companiei, iar vizitatorii le vor putea citi cu ușurință.
  • Site-ul este Drupal 7, așa că modulul va trebui să se potrivească cu versiunea majoră. (Drupal 7 a ieșit de ceva vreme, așa că dacă un dezvoltator de module nu a ieșit încă cu o versiune Drupal 7, probabil că nu.)
  • Deși clientul nu a specificat acest lucru, am vrut, de asemenea, să evit să se bazeze pe un serviciu terță parte. Pentru videoclipuri, mă bucur să postez conținutul pe YouTube sau pe Vimeo și apoi să îl încorporez pe un site Drupal, dar pentru PDF-uri, nu cred că posibila expunere suplimentară ar depăși potențialul greutăți, rupere și cheltuieli. Cu toate acestea, am fost deschis la un serviciu terță parte dacă ar fi singura opțiune.
  • În ciuda dorinței mele de a evita un serviciu terț, știam că alegerea mea ar necesita probabil un Javascript de la o terță parte bibliotecă . Deși acest lucru ar adăuga un pas în plus față de viitoarele upgrade-uri, în general, mă simt mai bine să vă difuzez propria copie a unei biblioteci decât să se bazeze pe un serviciu terță parte.
  • Am vrut să păstrez modulul cât mai ușor și mai specific posibil. Nu am vrut să mă implic într-un mod radical nou de manipulare sau de organizare a fișierelor media. Am vrut ceva mai mult ca Colorbox, care mărește imaginile pentru o vizionare mai bună, dar rămâne complet independent de modul în care alegeți să gestionați fișierele imagine. Am avut o bănuială că această bibliotecă ar fi pdf.js, dar am fost deschis la alte posibilități.
  • Ca de obicei, am vrut să urmez orientările generale pentru alegerea unui modul Drupal. Practic, alegeți un modul deja folosit de câteva mii de persoane (dacă este posibil) pentru o perioadă de timp, cu un minim de dependențe, care pare să fie menținut de un dezvoltator activ care intenționează să continue să sprijine proiectul în viitor și nu " • solicitați o taxă de licențiere.

Căutați pe Drupal.org

Având în vedere aceste obiective, următorul pas a fost o căutare simplă pe Drupal.org. E timpul să sarăți în groapa de bilete a modulului.

Pagina "Comparație" pentru modulele PDF

Prima mea oprire a fost (sau ar fi trebuit să fie), această pagină: o Comparație între modulele de vizualizare PDF. Drupal.org are o tradiție excelentă de pagini de documentare care evidențiază avantajele și dezavantajele diferitelor module din același spațiu. Există o listă centrală a paginilor de comparație, dar ele sunt, de asemenea, stropite pe întreg site-ul.

Pagina de comparare PDF a inclus patru module de vizualizare PDF. Le voi acoperi aici, precum și alte câteva pe care le-am găsit din căutări. Voi începe cu candidații pe care am decis să le ignor.

Acum, să analizăm specificul motivului pentru care aceste module au funcționat (sau nu au funcționat în cea mai mare parte) pentru acest proiect.

Vizualizator de fișiere

Vizualizatorul de fișiere folosește Internet Archive BookReader, care ma intrigat pentru că sunt o victimă a arhivei de Internet. De fiecare dată când mă duc acolo, simt gâdila fricii și copleșesc munții cărților pe care le pot scoate din eter.

Acestea fiind spuse, site-ul demonstrativ mi sa parut putin urat. S-ar putea să trăiesc cu ea, dar m-am îndoit de clientul meu, cândpdf.js pare mult mai elegant.

De asemenea, într-o privire secundă la pagina proiectului, am văzut anunțul mare și îndrăzneț din partea de sus:Acest modul a fost mutat formal în modul PDF. Destul de corect. Cu mai puțin de 400 de instale, îmbinarea cu modulul PDF mai popular (pe care o vom acoperi într-o clipă), pare a fi o mișcare bună. Nu descărcați niciodată un modul care a fost îmbinat / mutat / abandonat.

Formatatorul de fișiere Google Viewer

Fișierul Formatator de fișiere Google Viewer este ceea ce pare: o modalitate de a utiliza Google Docs pentru a încorpora afișări de fișiere în pagina dvs. web. Deși mi-a plăcut versatilitatea Google Docs, unul dintre obiectivele mele a fost să rămân independent de orice serviciu terță parte.

De asemenea, acest modul a avut mai puțin de 100 de instale.

Ajax Document Viewer

Deși "AJAX" este un termen general Javascript, Ajax Document Viewer sa dovedit a se baza pe un anumit serviciu terță parte. Doar 100 de instalări. Trecând peste…

Scald PDF

Scald PDF avea doar 40 de instalări, dar a trebuit să arunc o privire, deoarece ea făcea parte dintr-un proiect mai mare numit (da) Scald. Așa cum a explicat pagina proiectului Scald: " Scald este o abordare inovatoare cu privire la modul de manipulareAtomii media în Drupal. "

Această propoziție a ridicat două steaguri roșii uriașe: "ia inovatoare" și cuvântul "Media" asociat cu "Atom". "Atom" era evident un cuvânt repetat pentru "lucru", ceea ce îl făcea un drapel roșu singur. Drupal are o pledoarie pentru aceste cuvinte: nodul , entitate , caracteristică … Cu cât cuvântul este mai general, cu atât pot fi mai multe schimbări.

Pe măsură ce mi-am dat jos, suspiciunile mele au fost confirmate. Am citit pretenții incantate despre cum Scald va reinventa practic modul în care m-am ocupat de Media pe site-ul meu.

Acum, adevărul este că manipularea Drupal Media ar putea folosi unele reinventări. Scald nu este singurul proiect ambițios din acest spațiu.Cu toate acestea, cu mai puțin de 1000 de instalări până acum, nu am vrut să intru la parter.

Sigur, până în acest an, Scald ar putea fi următoarele viziuni. Asta ar fi rock. Dar ar putea fi și abandonware, cu un traseu (mic) de site-uri rupte lăsate să plângă.

Pentru moment, am vrut să rămân cu o soluție mult mai puțin ambițioasă și periculoasă. Afișați PDF-uri, vă rog. Asta-i tot ce-am cerut.

Cutia umbrei

Shadowbox ma surprins: se pretinde a fi o singură soluție pentru afișarea tuturor tipurilor de medii, de la PDF-uri la imagini-video. Aceasta nu era la fel de măturică ca Scald, pentru că se va concentra numai asupra ei afișarea media fără a introduce concepte întregi noi precum "Atomurile mass-media". Dar îmi place deja Colorbox, așa cum am menționat. Nu am vrut să trebuiască să regândesc această decizie.

Cu toate acestea, am facut nota (cu un groan interior), care sa terminat16,000 instalează, Shadowbox ar putea fi o alternativă mai puternică în același spațiu. eu a avut să aruncăm o privire.

Modulul Shadowbox Drupal este, practic, o punte spre o bibliotecă Javascript, Shadowbox.js, așa că am verificat site-ul bibliotecii. Acolo, am descoperit două motive pentru a continua:

  • Biblioteca necesită o taxă de licență pentru uz comercial. Taxa a fost suficient de rezonabilă, dar încerc să evit software-ul cu sursă deschisă, care nu este gratuit.
  • O căutare atentă a întrebărilor frecvente a dezvăluit că, spre deosebire de descrierea din pagina modulului Drupal, există PDF-uri nu 100% susținută de biblioteca Shadowbox. Hopa. Am verificat bine.

Cei doi concurenți: "PDF" și "PDF Reader"

După ce am eliminat restul, am ajuns acum la cei doi concurenți evideni: PDF și PDF Reader

Aceste două proiecte au avut asemănări cheie:

  • Ambele au avut aproape 3000 de instalări, mult mai mult decât alternativele (cu excepția Shadowbox).
  • Ambele au folosit aceeași bibliotecă externă Javascript,pdf.js.

Dar diferențele?

PDF Reader a avut de asemenea opțiunea de integrare în Google Docs. În acest caz special, m-am gândit că clientul mi-ar plăcea asta, așa că mi-a plăcut să am opțiunea.

Între timp, PDF a fost marcat caCăutați co-întreținător (i). Acesta ar putea fi un semn că dezvoltatorul ar abandona în curând proiectul, dar, pe de altă parte, cel mai recent angajament a fost o săptămână în urmă, deci cel puțin dezvoltatorul era încă activ.

Pe de altă parte, PDF Reader a fost marcat caMenținerea activă, dar cel mai recent angajament a fost acum un an.

Fără un câștigător clar, am decis să le testez pe amândouă.

Testarea Contenderilor

Am testat ambele module pe o copie a site-ului meu live. (Indiferent de modul în care apare un modul solid și inofensiv, nu încercați niciodată mai întâi pe un site live. Puteți întrerupe întregul site.)

Am fost părtinitoare spre PDF Reader , deoarece pare să aibă mai multe opțiuni (cum ar fi Google Docs) decât PDF . Așa că am decis să încerc PDF în primul rând, pentru al scoate din drum.

Nerespectarea PDF: este necesară compilarea?

Cu toate acestea, când am instalat PDF și citesteREADME.txt, Am descoperit o problemă pe care o văzusem, dar o ignoram pe pagina proiectului. Din anumite motive, acest modul pare să necesite compilareapdf.js manual. Deși pagina proiectului a sugerat că acest lucru nu a fost neapărat necesar,README.txt a sugerat că a fost.

De cand PDF Reader ar folosi aceeași bibliotecă fără a cere acest pas, am decis să încerc mai întâi de toate. Dacă nu ar funcționa, aș putea întotdeauna să mă întorc PDF și încercați să compilați manualpdf.js.

PDF Reader: Succes! Un fel de.

Deci, la sfârșit, am încercat PDF Reader . Acest modul oferă un widget nou pentru afișarea unuiFişier camp. Adăugați un câmp de fișier la tipul de conținut dorit și setați tipul de widget laPDF Reader. Apoi, creați un nod de acest tip și încărcați fișierul PDF. PDF-ul apare încorporat într-o "casetă" a paginii.

Puteți încerca diferite opțiuni de afișare, modificând din nou tipul de conținut și schimbând setările de afișare pentru câmp.

Am constatat că fiecare opțiune de afișare a avut argumente pro și contra:

  • documente Google cititorul a lucrat bine ca un embed, dar când am făcut clic pe el pentru a merge pe ecran complet, am terminat pe o pagină Google Docs care mi-a cerut scuze că limita mea de rată a fost depășită. Hopa. Poate că acest lucru ar fi mai de încredere dacă am prins modulul la un cont Google Apps plătit, dar nu m-am deranjat să aflu, deoarece eram destul de sigur că clientul meu nu-i plăcea afișarea.
  • pdf.js opțiunea a funcționat minunat … în Firefox și Chrome. Dar când am dat foc Internet Explorer, caseta a apărut goală. Aparent, aceasta este o problemă cupdf.js ea însăși, nu PDF Reader modul. Presupun că ar fi trebuit să aștept asta, având în vedere astapdf.js este dezvoltat de Mozilla și Internet Explorer este … în sine. Totuși, am fost dezamăgit că nu m-am gândit să confirm acest lucrupdf.js a lucrat fiabil în toate browserele, în primul rând.
  • încorporare opțiunea a fost cea mai fiabilă. Acest lucru a condus de fapt Adobe Reader într-o cutie de pe pagina web. Firefox încă preferă să rulezepdf.js, dar cred că acesta a fost un set de browser. Oricum, atâta timp cât un vizitator a avut fie Firefox, fie un program de vizualizare PDF, cum ar fi Adobe Reader, fișierul PDF se va afișa.

Astfel, în cele din urmă, soluția mea era să folosesc PDF Reader cuÎncorporare afișare. Această opțiune mi-ar permite să atașez un PDF la un nod Drupal și să îl afișez în mod fiabil pe o pagină Web Drupal.

Din păcate, uneori "de încredere" nu este suficient. După toate căutările, trebuia să mă gândesc la un serviciu terță parte.