Qué saber
- Defina lo que desea, ver archivos PDF en un navegador, pero tenga en cuenta la versión de Drupal, las tarifas de licencia y la cantidad de usuarios.
- Busque en Drupal.org el Comparación de módulos visores de PDF página con pros y contras de cada opción. Elija algunas opciones posibles.
- Evalúe cada módulo de visor de PDF para ver qué tan bien satisface sus necesidades.
Este artículo explica cómo elegir un módulo de Drupal 7 para ver archivos PDF. Incluye una evaluación de varios módulos potenciales.
Define lo que quieres
Imagine que un cliente le pide que agregue una nueva función al sitio Drupal de la empresa: mostrar archivos PDF en el navegador. A medida que navega por las opciones en drupal.org, se da cuenta de que hay bastantes opciones para elegir.
El primer paso es definir lo que quiere. En general, estos son requisitos bastante estándar que esperará.
- La capacidad de ver archivos PDF en un navegador web, similar a este ejemplo. El cliente cargaría archivos PDF del boletín de la empresa y los visitantes podrían leerlos fácilmente.
- El sitio es Drupal 7, por lo que el módulo debería coincidir versión principal. (Drupal 7 ha estado disponible por un tiempo, por lo que si un desarrollador de módulos aún no ha presentado una versión de Drupal 7, probablemente no lo hará).
- También es posible que desee evitar depender de un servicio de terceros. En el caso de los videos, puede que te guste publicar el contenido en YouTube o Vimeo y luego incrustarlo en un sitio de Drupal, pero para los PDF, no creemos que la posible exposición adicional supere las posibles molestias, roturas y gastos.
- Probablemente desee mantener el módulo lo más ligero y específico posible. Puede que estés buscando algo más parecido a Caja de color, que amplía las imágenes para una mejor visualización pero sigue siendo completamente independiente de cómo elija administrar los archivos de imagen.
- Como de costumbre, queremos seguir las pautas generales para elegir un módulo de Drupal. Básicamente, elija un módulo que ya haya estado en uso por algunos miles de personas (si es posible) durante un tiempo, con un mínimo de dependencias, que parece ser mantenido por un desarrollador activo que planea seguir apoyando el proyecto en el futuro y no requiere una licencia tarifa.
Buscar en Drupal.org
Con estos objetivos en mente, el siguiente paso fue un búsqueda simple en Drupal.org. Es hora de saltar al pozo de bolas de la bondad del módulo.
Página de 'comparación' para módulos PDF
Mi primera parada fue (o debería haber sido), esta página: una Comparación de módulos visores de PDF. Drupal.org tiene una excelente tradición de páginas de documentación que describen los pros y los contras de varios módulos en el mismo espacio. Hay una lista central de páginas de comparación, pero también están esparcidos por todo el sitio.
La página de comparación de PDF incluía cuatro módulos de visor de PDF. Los cubriremos aquí, así como un par de otros que encontramos al buscar. Comenzaremos con los candidatos que decidimos omitir.
Ahora profundicemos en los detalles de por qué estos módulos funcionaron (o en su mayoría no) funcionaron para este proyecto.
Formateador de archivos del visor de Google
Formateador de archivos del visor de Google es lo que parece: una forma de utilizar Google Docs para incrustar visualizaciones de archivos en su página web. Aunque nos gustó la versatilidad de Google Docs, uno de nuestros objetivos era seguir siendo independientes de cualquier servicio de terceros.
Además, este módulo tuvo menos de 100 instalaciones.
Visor de documentos Ajax
Aunque "AJAX" es un término general de JavaScript, Visor de documentos Ajax resultó depender de un servicio específico de terceros. Solo unas 100 instalaciones. Hacia adelante...
Escaldar PDF
Escaldar PDF solo tuvo 40 instalaciones, pero tuvimos que echarle un vistazo ya que claramente era parte de un proyecto más grande llamado (sí) Escaldadura. Como explica la página del proyecto Scald: "Scald es una versión innovadora de cómo manejar Átomos de medios en Drupal ".
Esa frase levantó dos grandes banderas rojas: "toma innovadora" y la palabra "Medios" junto con "Átomo". "Átomo" era obviamente una palabra reutilizada para "cosa", lo que la convirtió en una bandera roja por sí sola. Drupal tiene predilección por este tipo de palabras de caja vacía: nodo, entidad, característica... Cuanto más general sea la palabra, más radicales pueden ser los cambios.
Leerá afirmaciones emocionadas de cómo Scald básicamente reinventará la forma en que maneja los medios en su sitio.
Ahora, la verdad es que el manejo de medios de Drupal podría necesitar una reinvención. Scald no es el único proyecto ambicioso en este espacio.
Scald podría ser el próximo Puntos de vista. Eso sería genial. Pero también podría ser abandonware, con un (pequeño) rastro de sitios rotos que se dejaron llorar.
Caja de sombra
Caja de sombra nos sorprendió: afirmaba ser una solución única para mostrar todo tipo de medios, desde archivos PDF hasta imágenes y videos. Esto no fue tan amplio como Scald ya que solo se enfocaría en exhibiendo media sin introducir conceptos completamente nuevos como "Media Atoms". Pero ya nos gusta Colorbox, como se mencionó.
Sin embargo, notamos (con un gemido interno) que con más 16,000 instala, Shadowbox podría ser una alternativa más poderosa en el mismo espacio. Nosotros tenido echar un vistazo.
El módulo Shadowbox Drupal es básicamente un puente a una biblioteca Javascript, Shadowbox.js, entonces revisamos el sitio web de la biblioteca. Allí, descubrimos dos razones para seguir adelante:
- La biblioteca requiere una tarifa de licencia para uso comercial. La tarifa era lo suficientemente razonable, pero tratamos de evitar el software de código abierto que no es gratuito.
- Una búsqueda cuidadosa de las preguntas frecuentes reveló que, contrariamente a la descripción en la página del módulo de Drupal, los PDF son no 100% compatible con la biblioteca Shadowbox. UPS.
Los dos contendientes: 'PDF' y 'PDF Reader'
Habiendo eliminado al resto, llegamos a los dos contendientes obvios: PDF y Lector PDF
Estos dos proyectos tenían similitudes clave:
- Ambos tuvieron casi 3,000 instalaciones, mucho más que las alternativas (excepto Shadowbox).
- Ambos usaron la misma biblioteca Javascript externa, pdf.js.
¿Qué pasa con las diferencias?
Lector PDF También tenía la opción de integración con Google Docs.
Entretanto, PDF se marcó como "Buscando co-mantenedores". Eso podría ser una señal de que el desarrollador pronto abandonaría el proyecto, pero por otro lado, el compromiso más reciente fue hace una semana, por lo que al menos el desarrollador todavía estaba activo.
Por otro lado, Lector PDF se marcó como "Mantenido activamente", pero el compromiso más reciente fue hace un año.
Sin un ganador claro, decidimos probarlos a ambos.
Probando a los contendientes
Probamos ambos módulos en una copia de nuestro sitio en vivo. (No importa cuán sólido e inocuo parezca un módulo, nunca lo intente primero en un sitio en vivo. Podría romper todo su sitio).
Estábamos predispuestos hacia Lector PDF porque parecía tener más opciones (como Google Docs) que PDF. Así que decidimos intentar PDF primero, sacarlo del camino.
Error de PDF: ¿Se requiere compilación?
Sin embargo, cuando instalamos PDF y leemos "README.txt", descubrimos un problema que habíamos visto pero ignorado en la página del proyecto. Por alguna razón, este módulo parece requerir que compile pdf.js manualmente. Aunque la página del proyecto sugirió que esto no era necesariamente necesario, README.txt sugirió que sí.
Desde Lector PDF usaría exactamente la misma biblioteca sin requerir este paso, decidimos probarlo primero después de todo. Si no funcionó, siempre podríamos volver a PDF e intente compilar manualmente pdf.js.
Lector de PDF: ¡Éxito! Algo así como
Así que, por fin, lo intentamos Lector PDF. Este módulo proporciona un nuevo widget para mostrar un Archivo campo. Agrega un campo de archivo a su tipo de contenido y establezca el tipo de widget en Lector PDF. Luego, crea un nodo de este tipo y carga su PDF. El PDF aparece incrustado en un "cuadro" en la página.
Puede probar diferentes opciones de visualización editando de nuevo el tipo de contenido y cambiando la configuración de visualización del campo.
Descubrimos que cada opción de visualización tenía pros y contras:
- La Documentos de Google El lector funcionó bien como incrustado, pero cuando hicimos clic en él para pasar a pantalla completa, terminamos en una página de Google Docs que se disculpó porque se había excedido nuestro límite de frecuencia. UPS. Quizás esto sería más confiable si conectamos el módulo a una cuenta de pago de Google Apps, pero no nos molestamos en averiguarlo.
- La pdf.js La opción funcionó maravillosamente... en Firefox y Chrome. Pero cuando iniciamos Internet Explorer, el cuadro parecía vacío. Aparentemente, este es un problema con pdf.js en sí, no con Lector PDF módulo. Suponemos que es de esperar, dado que pdf.js está desarrollado por Mozilla e Internet Explorer es... él mismo. Aún así, es decepcionante que no hayamos pensado en confirmar que pdf.js funcionó de manera confiable en todos los navegadores en primer lugar.
- La empotrar La opción fue la más confiable. En realidad, esto ejecutó Adobe Reader en un cuadro en la página web. Firefox todavía prefirió ejecutar pdf.js, pero creemos que se trata de una configuración del navegador. De cualquier manera, siempre que un visitante tuviera Firefox o un visor de PDF como Adobe Reader, el PDF se mostraría.
Por lo tanto, al final, nuestra solución es utilizar el Lector PDF con el Empotrar opción de visualización. Esta opción le permitirá adjuntar un PDF a un nodo de Drupal y mostrarlo de manera confiable en una página web de Drupal.
Desafortunadamente, a veces "confiable" no es suficiente.