Vad du ska veta
- Definiera vad du vill - visa PDF-filer i en webbläsare - men kom ihåg Drupal-versionen, eventuella licensavgifter och antal användare.
- Sök efter Drupal.org Jämförelse av PDF-visningsmoduler sida med fördelar och nackdelar för varje alternativ. Välj några troliga val.
- Utvärdera varje PDF-visningsmodul för att se hur väl den uppfyller dina behov.
Den här artikeln förklarar hur man väljer en Drupal 7-modul för visning av PDF-filer. Den innehåller en utvärdering av flera potentiella moduler.
Definiera vad du vill
Föreställ dig att en klient ber dig att lägga till en ny funktion på företagets Drupal-webbplats: visa PDF-filer i webbläsaren. När du bläddrar bland alternativen på drupal.org inser du att det finns en hel del alternativ att välja mellan.
Det första steget är att definiera vad du vill ha. I allmänhet är detta ganska standardkrav som du förväntar dig.
- Möjligheten att visa PDF-filer i en webbläsare, liknar detta exempel. Klienten laddar upp PDF-filer från företagets nyhetsbrev och besökare kan enkelt läsa dem.
- Webbplatsen är Drupal 7, så modulen skulle behöva matcha det större version. (Drupal 7 har varit ute ett tag nu, så om en modulutvecklare inte har kommit ut med en Drupal 7-version ännu, kommer de förmodligen inte.)
- Du kanske också vill undvika att förlita dig på en tredje parts tjänst. För videor kan du gärna lägga upp innehållet på YouTube eller Vimeo och sedan bädda in det på en Drupal-webbplats, men för PDF-filer tror vi inte att den eventuella extra exponeringen skulle uppväga det potentiella besväret, brottet och bekostnad.
- Du vill nog hålla modulen så lätt och specifik som möjligt. Du kanske letar efter något mer som Färglåda, som förstorar bilder för bättre visning men förblir helt oberoende av hur du väljer att hantera bildfilerna.
- Som vanligt vill vi följa de allmänna riktlinjerna för att välja en Drupal-modul. I grund och botten väljer du en modul som redan har använts av några tusen personer (om möjligt) ett tag, med ett minimum av beroenden, som verkar upprätthållas av en aktiv utvecklare som planerar att fortsätta stödja projektet i framtiden och inte kräver någon licensiering avgift.
Sök på Drupal.org
Med dessa mål i åtanke var nästa steg a enkel sökning på Drupal.org. Dags att hoppa in i Ball Pit of Module Goodness.
'Jämförelse' sida för PDF-moduler
Mitt första stopp var (eller borde ha varit), den här sidan: a Jämförelse av PDF-visningsmoduler. Drupal.org har en utmärkt tradition av dokumentationssidor som beskriver för- och nackdelar med olika moduler i samma utrymme. Det finns en central lista över jämförelsessidor, men de strös också över hela webbplatsen.
PDF-jämförelsessidan innehöll fyra PDF-visningsmoduler. Vi kommer att täcka dem här, liksom ett par andra vi hittade från att söka. Vi börjar med de kandidater som vi bestämde oss för att hoppa över.
Låt oss nu gräva i detaljerna för varför dessa moduler fungerade (eller oftast inte) för detta projekt.
Google Viewer File Formatter
Google Viewer File Formatter är hur det låter: ett sätt att använda Google Docs för att bädda in visningar av filer på din webbsida. Även om vi gillade Google Docs mångsidighet, var ett av våra mål att förbli oberoende av alla tjänster från tredje part.
Den här modulen hade också mindre än 100 installationer.
Ajax Document Viewer
Även om "AJAX" är en allmän Javascript-term, Ajax Document Viewer visade sig förlita sig på en specifik tjänst från tredje part. Endast cirka 100 installationer. Gå vidare...
Scald PDF
Scald PDF hade bara 40 installationer, men vi var tvungna att ta en titt eftersom det helt klart var en del av ett större projekt som heter (ja) Skålla. Som Scald-projektsidan förklarade: "Scald är ett innovativt sätt att hantera Media Atomer i Drupal. "
Den meningen höjde två enorma röda flaggor: "innovativt tag" och ordet "Media" parat med "Atom". "Atom" var uppenbarligen ett nytt ord för "sak", vilket gjorde det till en röd flagga ensam. Drupal har en förkärlek för dessa tomma ord: nod, entitet, funktion... Ju mer allmänt ordet är, desto mer svepande kan ändringarna bli.
Du kommer att läsa upphetsade påståenden om hur Scald i princip kommer att uppfinna hur du hanterar media på din webbplats.
Sanningen är nu att Drupals mediehantering kan använda en del uppfinningar. Scald är inte det enda ambitiösa projektet i detta utrymme.
Scald kan vara nästa Visningar. Det skulle rocka. Men det kan också vara abandonware, med ett (litet) spår av trasiga platser kvar att gråta.
Skugglåda
Skugglåda förvånade oss: det påstod sig vara en enda lösning för att visa alla typer av media, från PDF-filer till bilder till video. Det här var inte så svepande som Scald eftersom det bara skulle fokusera på visar media utan att introducera helt nya koncept som "Media Atoms". Men vi gillar redan Colorbox, som nämnts.
Vi noterade dock (med ett inre stön) att med över 16,000 installerar, kan Shadowbox vara ett mer kraftfullt alternativ i samma utrymme. Vi hade att ta en titt.
Shadowbox Drupal-modulen är i grunden en bro till ett Javascript-bibliotek, Shadowbox.js, så vi kollade på bibliotekets webbplats. Där upptäckte vi två skäl att gå vidare:
- Biblioteket kräver en licensavgift för kommersiellt bruk. Avgiften var rimlig nog, men vi försöker undvika öppen källkod som inte är gratis.
- En noggrann sökning i FAQ visade att, i motsats till beskrivningen på Drupal-modulens sida, är PDF-filer inte 100% stöds av Shadowbox-biblioteket. Hoppsan.
De två utmanarna: 'PDF' och 'PDF Reader'
Efter att ha eliminerat resten kom vi nu till de två uppenbara utmanarna: PDF och PDF-läsare
Dessa två projekt hade viktiga likheter:
- Båda hade nästan 3000 installationer, mycket mer än alternativen (förutom Shadowbox).
- Båda använde samma externa Javascript-bibliotek, pdf.js.
Vad sägs om skillnader?
PDF-läsare hade också möjlighet för Google Docs-integration.
Under tiden, PDF markerades som "Söker medunderhållare." Det kan vara ett tecken på att utvecklaren snart skulle överge projekt, men å andra sidan var det senaste åtagandet för en vecka sedan, så åtminstone var utvecklaren fortfarande aktiva.
Å andra sidan, PDF-läsare markerades som "Aktivt underhållen", men det senaste åtagandet var för ett år sedan.
Utan en klar vinnare bestämde vi oss för att testa dem båda.
Testa utmanarna
Vi testade båda modulerna på en kopia av vår livesida. (Oavsett hur solid och oskadlig en modul visas, prova den aldrig först på en live-webbplats. Du kan bryta hela din webbplats.)
Vi var partiska mot PDF-läsare eftersom det verkade ha fler alternativ (som Google Docs) än PDF. Så vi bestämde oss för att försöka PDF först för att få det ur vägen.
PDF misslyckades: sammanställning krävs?
Men när vi installerade PDF och läs "README.txt", vi upptäckte ett problem som vi hade sett men ignorerat på projektsidan. Av någon anledning verkar den här modulen kräva att du kompilerar pdf.js manuellt. Även om projektsidan föreslog att detta inte nödvändigtvis krävdes, föreslog README.txt att det var.
Eftersom PDF-läsare skulle använda exakt samma bibliotek utan att behöva detta steg, bestämde vi oss först för att försöka. Om det inte fungerade kunde vi alltid gå tillbaka till PDF och försök att manuellt kompilera pdf.js.
PDF-läsare: framgång! Ungefär
Så äntligen försökte vi PDF-läsare. Denna modul tillhandahåller en ny widget för att visa en Fil fält. Du lägger till ett filfält till önskat innehållstyp och ställ in widget-typen till PDF-läsare. Sedan skapar du en nod av den här typen och laddar upp din PDF. PDF-filen visas inbäddad i en "ruta" på sidan.
Du kan prova olika visningsalternativ genom att redigera innehållstypen igen och ändra visningsinställningarna för fältet.
Vi fann att varje visningsalternativ hade fördelar och nackdelar:
- De Google Dokument läsaren fungerade bra som en inbäddning, men när vi klickade på den för att gå till helskärmstopp, avvecklades vi på en Google Docs-sida som ber om ursäkt för att vår prisgräns har överskridits. Hoppsan. Kanske skulle detta vara mer tillförlitligt om vi kopplade modulen till ett betalande Google Apps-konto, men vi brydde oss inte om att ta reda på det.
- De pdf.js alternativet fungerade fantastiskt... på Firefox och Chrome. Men när vi avfyrade Internet Explorer verkade rutan vara tom. Tydligen är detta ett problem med pdf.js i sig, inte PDF-läsare modul. Vi antar att det är att förvänta sig, med tanke på att pdf.js är utvecklat av Mozilla och Internet Explorer är... själv. Ändå är det en besvikelse att vi inte hade tänkt att bekräfta att pdf.js fungerade tillförlitligt i alla webbläsare i första hand.
- De bädda in alternativet var det mest pålitliga. Detta körde faktiskt Adobe Reader i en ruta på webbsidan. Firefox föredrog fortfarande att köra pdf.js, men vi tror att det här var en webbläsarinställning. Hur som helst, så länge en besökare hade antingen Firefox eller en PDF-visare som Adobe Reader, skulle PDF-filen visas.
I slutändan är vår lösning alltså att använda PDF-läsare med Bädda in visningsalternativ. Med det här alternativet kan du bifoga en PDF till en Drupal-nod och på ett tillförlitligt sätt visa den på en Drupal-webbsida.
Tyvärr räcker det ibland inte med "pålitlig".