Como elixir un módulo Drupal 7 para ver PDF

Un caso de estudo na arte da selección de módulos

Recientemente, un cliente pediume que engada unha nova característica para o sitio web da empresa Drupal: amosar arquivos PDF no navegador. Cando navegaba polas opcións de drupal.org, deime conta de que era unha oportunidade perfecta para documentar o meu proceso de toma de decisións real cando elixín un novo módulo . Sempre dicindo que elixir os módulos sabiamente , pero agora podes ver como creo que isto funciona na vida real.

Defina o que quere

O primeiro paso é definir o que quere. No meu caso, quería:

Buscar en Drupal.org

Con estes obxectivos en mente, o seguinte paso foi unha simple busca en Drupal.org. Tempo para saltar ao Pit Ball of Module Goodness.

& # 34; Comparación & # 34; Páxina para módulos PDF

A miña primeira parada foi (ou debería ser), esta páxina: unha comparación de módulos de visor de PDF. Drupal.org ten unha excelente tradición de páxinas de documentación que describen os pros e os contras de varios módulos no mesmo espazo. Hai unha lista central de páxinas de comparación, pero tamén están espolvoradas en todo o sitio.

A páxina de comparación de PDF incluíu catro módulos de visor de PDF. Vareilles abaixo aquí, así como outros dous que atopei na procura. Comezarei cos candidatos que decidín ignorar.

Agora imos afondar nas particularidades de por que estes módulos fixeron (ou non fixeron máis que nada) traballar para este proxecto.

Visor de ficheiros

O visor de ficheiros usa o arquivo de Internet BookReader, que me intrigou porque son un junkie de Internet Archive. Cada vez que vou alí, sento cóxegas de medo e desbordo nas montañas de libros que podo sacar do éter.

Dito isto, o sitio de demostración parecía un pouco feo para min. Podería vivir con iso, pero dubidaba do meu cliente, cando pdf.js parece moito máis elegante.

Ademais, nunha segunda ollada á páxina do proxecto, vin o gran anuncio audaz na parte superior: Este módulo foi trasladado formalmente a un módulo PDF . Bastante xusto. Con menos de 400 instalacións, combinándose co módulo PDF máis popular (que cubriremos nun momento), parece un bo movemento. Nunca descargue un módulo que fose combinado / movido / abandonado.

Formato de ficheiros de Google Viewer

O formateador de ficheiros de Google Viewer é o que parece: unha forma de usar Google Docs para inserir pantallas de arquivos na súa páxina web. Aínda que me gustou a versatilidade de Google Docs, un dos meus obxectivos era manter a independencia de calquera servizo de terceiros.

Ademais, este módulo tiña menos de 100 instalacións.

Visor de documentos Ajax

Aínda que "AJAX" é un termo xeral de Javascript, o visualizador de documentos de Ajax acabou por contar cun servizo de terceiros específico. Só preto de 100 instalacións. Seguindo ...

Scald PDF

Scald PDF só tiña 40 instalacións, pero tiven que botarlle unha ollada, xa que era claramente parte dun proxecto máis grande chamado (si) Scald. Como explicou a páxina do proxecto Scald: " Scald é unha solución innovadora para manexar os medios de átomos en Drupal".

Esa oración levantou dúas enormes bandeiras vermellas: "toma innovadora" ea palabra "Media" combinou con "Atom". "Atom" era obviamente unha palabra reiterada para "cousa", que o converteu nunha bandeira vermella por si só. Drupal ten unha inclinación por estas palabras de caixa baleira: , entidade , característica ... A palabra máis xeral, canto máis pescan os cambios pode ser.

Mentres me desprazaba, as sospeitas confirmáronse. Lin as afirmacións emocionadas de como Scald reinventaría basicamente como manexaba Media no meu sitio.

Agora, o certo é que o manexo de medios de Drupal podería empregar algo de reinventa. Scald non é o único proxecto ambicioso neste espazo. Con todo, con menos de 1000 instalacións ata agora, non quería entrar na planta baixa.

Por suposto, nesta ocasión o próximo ano, Scald podería ser as próximas Vistas . Isto sería rockeiro. Pero tamén podería ser abandonware, cun rastro (pequeno) de sitios rotos deixados de chorar.

Por agora, quería manter unha solución menos ambiciosa e perigosa. Simplemente mostre PDF, por favor. Iso é todo o que estaba a pedir.

Shadowbox

Shadowbox sorprendeume: afirmaba ser unha solución única para mostrar todo tipo de medios, desde PDF a imaxes a video. Isto non era tan arduo como Scald, xa que só se centraría na exhibición de medios sen introducir novos conceptos como "Media Atoms". Pero xa me gustou a Colorbox, como dixen. Non quería ter que repensar esa decisión.

Con todo, fixen nota (cun ​​xemido interno) que con máis de 16.000 instalacións, Shadowbox podería ser unha alternativa máis poderosa no mesmo espazo. Tiven que botar unha ollada.

O módulo Shadowbox Drupal é basicamente unha ponte para unha biblioteca de Javascript, Shadowbox.js, polo que comprobou o sitio web da biblioteca. Alí descubrín dúas razóns para avanzar:

Os dous contendentes: & # 34; PDF & # 34; e & # 34; lector de PDF & # 34;

Tras eliminar o resto, agora chegou aos dous obvios candidatos: PDF e PDF Reader

Estes dous proxectos tiñan semellanzas clave:

E sobre as diferenzas?

O lector de PDF tamén tiña a opción para a integración de Google Docs. Neste caso particular, pensei que o meu cliente podería gustarlle, así que me gustou ter a opción.

Mentres tanto, o PDF foi marcado como Buscando co-mantenedor (s). Isto podería ser un sinal de que o desarrollador pronto abandonaría o proxecto, pero, por outra banda, o commit máis recente foi hai unha semana, polo menos o desarrollador aínda estaba activo.

Doutra banda, o lector de PDF marcouse como Activamente mantido, pero o commit máis recente foi fai un ano.

Sen un claro ganador, decidín probalas a ambos.

Probar os contendentes

Probei dous módulos nunha copia do meu sitio en directo. (Non importa o sólido e inocuo que apareza un módulo, nunca tente primeiro nun sitio en directo. Pode romper todo o sitio).

Eu era partidario de PDF Reader , porque parecía ter máis opcións (como Google Docs) que PDF . Entón, decidín probar PDF primeiro, para sacalo do camiño.

Fallo de PDF: compilación necesaria?

Non obstante, cando instalei PDF e lin README.txt, descubrín un problema que vira pero ignoraba na páxina do proxecto. Por algunha razón, este módulo parece esixir que compile pdf.js manualmente. Aínda que a páxina do proxecto suxeriu que isto non era necesariamente necesario, README.txt suxeriu que era.

Dado que o PDF Reader usaría a mesma biblioteca exacta sen necesitar este paso, decidín probalo primeiro. Se non funcionase, sempre podería volver a PDF e tentar compilar manualmente pdf.js.

Lector de PDF: éxito! Clase de.

Entón, por fin, probei PDF Reader . Este módulo proporciona un novo widget para mostrar un campo Arquivo. Engade un campo de ficheiro ao tipo de contido desexado e configura o tipo de widget ao lector de PDF. Entón, cree un nodo deste tipo e cargue o seu PDF. O PDF aparece incrustado nunha "caixa" na páxina.

Pode probar diferentes opcións de visualización modificando de novo o tipo de contido e cambiando a configuración de visualización para o campo.

Descubrí que cada opción de visualización tiña pros e contras:

Deste xeito, ao final, a miña solución era usar o PDF Reader coa opción de visualización de Embed . Esta opción permíteme achegar un PDF a un nodo Drupal e amosar de xeito fiable nunha páxina web de Drupal.

Desafortunadamente, ás veces "confiable" non é suficiente. Logo de toda esta busca, tiven que considerar un servizo de terceiros despois de todo.