SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

279 Plugins, 195 contribs sur SPIP-Zone, 97 visiteurs en ce moment

Accueil > Rédaction > Imprimer et PDF > Archives Imprimer > Artículos de SPIP en formato PDF (Nueva versión)

Artículos de SPIP en formato PDF (Nueva versión)

7 octobre 2005 – par Martin Gaitan – commentaires

Toutes les versions de cet article : [français] [italiano]

2 votes

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Una versión mejorada del script que genera en formato PDF nuestros artículos.

Esta contribución se inspira ampliamente en
Génération améliorée de fichiers PDF
y en :Génération de PDF pour SPIP - Drop Zone City

Invito a que revises esas contribuciones antes que ésta.

Instalación

Encontrarás en el documento adjunto (titulado PDF Nueva Versión), los ficheros necesarios para la generación de los artículos en formato PDF.

No se debe olvidar crear una subcarpeta llamada _article_PDF en la carpeta /IMG y de asignarle los permisos a 777 (como lo habían hecho en la instalación de SPIP para el directorio IMG por ejemplo).

A continuación, instala los archivos adjuntados en la raíz de su sitio SPIP.

Atención : Si ya utilizas un archivo mes_fonctions.php3, deberás copiar el código contenido en el mes_fonctions.php3 que aquí se incluye y pegarlo entre las balizas <?php y ?> en tu archivo mes_fonctions.php3.

Luego, sólo resta incluir el vínculo en su esqueleto article.html hacia article_pdf.php3. Un ejemplo sería esto : :

<a href="article_pdf.php3?id_article=#ID_ARTICLE" title="el art&iacute;culo en formato PDF">Descargar formato PDF</a>

Demostración de generación de PDF

Funcionalidades añadidas en ésta versión

-  Los PDF se regeneran automáticamente cuando se modifica un artículo, mientras que con las contribs anteriores se debía borrar a mano los pdf en la carpeta IMG/_article_PDF cada vez que se modificaba un artículo.

-  El problema de título demasiado largo que se cortaba y en consecuencia que no correspondía a la línea se ha corregido.

-  Mejora de la generación de algunos carácteres especiales.

-  Los logos de los artículos aparecen correctamente.

-  Las imágenes insertadas en los artículos aparecen correctamente.

-  Esta contribución es compatible con la contribución : Découper un article en plusieurs pages et lui ajouter un sommaire, así los <hr> generados no aparecen en el pdf.

-  Las imágenes en formato GIF se administran de 2 maneras : Con código PHP puro, siendo el resultado no muy satisfactorio aunque utilizable ; o bien, si está disponible, con utilización de la librería GD en una versión capaz de manipular los GIF, devolviendo un resultado perfecto.

-  Se administran los archivos PNG con capa ALFA pero el PNG generado en el PDF tendrá inevitablemente un fondo blanco (aunque se podría cambiar el color por defecto desde una variable fácilmente)

-  Utilizamos la última versión de FPDF que al momento de éste artículo es la 1.53. Para más información sobre las diferencias de las versiones vea aquí.

Un PDF simplificado sin portada

Encontrarás también entre las piezas adjuntas el archivo que permitirá generar un artículo al formato PDF, de presentación más simple, sin portada.

Instalación :

Se instala como se describió anteriormente el « paquete PDF Nueva Versión ». Luego basta con sustituir el archivo lib_pdf_spip.php que se sitúa en el directorio : lib/class_pdf por el proporcionado en el documento adjunto (cuyo título del zip es « PDF simple sans page de garde »).

Obtendrás entonces un PDF simple sin portada, con un pie de página dónde se encuentra el autor, el número de páginas, la fecha de publicación y el nombre del sitio.

Podrás fácilmente modificar el tamaño, el tipo de letra y los espacios entre cada baliza (antetítulo, título, subtítulo y texto).

Ejemplo :

        //Titre
        $this->SetFont('helvetica','B',12);
        $this->WriteHTML($titre);
        $this->Ln(12);

-  SetFont permite definir el formato (B=Negrita 12=tamaño, obviamente)

-  WriteHTML sirve para transformar las balizas HTML en códigos interpretables por el PDF

-  Ln(12) = Efectúa un salto de línea, y 12 = amplitud del salto de línea.

Para más información, ves a http://www.fpdf.org

Para ir más lejos : Añadir campos extra en la generación de los PDF

Si se desea utilizar los campos extras, es necesario declararlos en el fichero : lib_pdf_spip.php como esto :

línea 137 sustituir

global $texte, $chapo, $ps, $notes ;

por :

global $texte, $chapo, $extra, $ps, $notes ;

alrededor de la línea 146 buscar este código :

//Texte -
justifie $this->SetFont('helvetica','',10);
$this->WriteHTML($texte) ; $this->Ln(12);

y añadir a continuación :

if ($extra) // extra $this->SetFont('helvetica','',10) ; $this->WriteHTML($extra) ; $this->Ln(12) ;

En este ejemplo, los campos extra aparecerán en sus pdf bajo el texto del artículo y antes del PostScriptum.

Puedes situar el código siguiente antes del texto del artículo, antes del chapo, después del PS...

En article_pdf.html :

Línea 11, debajo de

$conf_nom_site = "[(#NOM_SITE_SPIP|pdf_first_clean)]" ;

inserta los campos extras que quieras mostrar, aquí un ejemplo con 2 campos extra (Misión, Competencia) :

$extra = "Misión : "."[(#EXTRA|Mision|pdf_first_clean)]"."
"."Competencia : "."[(#EXTRA|Competencia|pdf_first_clean)] ;

Puedes agregar de esta forma tantos campos extra como desees.

Para más información sobre los campos extra, ve a la parte privada de spip-contrib.net y haz una búsqueda sobre « extra ». Allí encontrarás toda la doc. sobre los campos extra y su utilización.

Bien, creo que no olvidé nada, sólo resta aclarar que esta contribución es sólo una recopilación de información del spip-contrib y sus foros. Pues no soy más que un ensamblador de lo que encontré y no el creador. Gracias a Chag que completó esta contrib. mejorando la gestión de las imágenes, de los cuadros e integrando la última versión de FPDF.

Integración de las imágenes en los PDF gracias a la librería GD

Comencemos por dar al César lo que es del César. Estas modificaciones se inspiran en este comentario.

Esta librería de manipulación de imágenes permite mejorar la calidad de algunas imágenes integradas en los PDF. Los formatos de archivos en cuestión son :

-  GIF : Este formato de imagen se sometía a licencia. Con el fin de no correr el riesgo de problemas judiciales y para no pagar, la librería GD no manipula ya los ficheros GIF entre su versión 1.6.0 (que corresponde a la fecha en la cual UNISYS comenzó a querer hacer pagar los usuarios) y la versión 2.0.28 (fecha a la cual su algoritmo principal pasó a dominio público). La ventaja de la librería GD es que manipula muy bien las imágenes en formato GIF.

Para saber si puedes utilizarlo ejecuta ?php phpinfo();?> desde una página php. Deberías obtener varias secciones incluidas una que se refiere a GD y que se podría asemejar a esta :

GD Support enabled
GD Version bundled (2.0.28 compatible)
FreeType Support enabled
FreeType Linkage with freetype
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled

Es necesario al menos que el soporte de lectura de GIF sea posible para poder utilizar la librería GD.

Tanto el caso de estar habilitado como no, nuestra modificación permite incluir en el fichero PDF una imagen en formato GIF ; pero será más limpia con la utilización de GD.

-  PNG : Cuando UNISYS comenzó a querer hacer pagar licencias para el formato GIF, el formato PNG emergió. La librería FPDF utilizada para crear los PDF de esta contribución ya sabe administrar los ficheros PNG, pero no los PNG con capa alfa.

Para resumir, la capa ALFA, es un método de transparencia sobre las imágenes que permite tener partes más o menos transparentes.

Nuestra modificación en la librería permite administrar los ficheros PNG con capa ALFA. El fichero se pondrá de nuevo obligatoriamente sobre un fondo blanco.

Aunque no tengan la intención de utilizar de imágenes PNG con canal alfa, sepan por ejemplo que, si añaden un documento PDF a un artículo, su icono es un PNG con canal ALFA.

Sobre la imagen siguiente, pueden comparar 2 capturas de pantalla de PDF generados a partir de SPIP. El primero no administra correctamente el canal alfa. El segundo, si.

PNG - 22.5 ko

Chag http://www.gaiaservice.fr

Paul http://www.netdeveloppeur.com

P.-S.

En los adjuntos se encuentran 3 archivos : si PDF Nueva Version no les funciona, prueben PDF Version Antigua


Artículo traducido por Martín Gaitán el 5 de octubre de 2005

Retour en haut de la page

Tout afficher

Vos commentaires

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Un glossaire interne pour vos sites

    27 mai 2007 – 306 commentaires

    Votre site utilise un vocabulaire technique spécialisé, vous avez une tendance maladive à jargonner sans vous en rendre compte, voici une solution pour que votre prose reste néanmoins accessible au commun des (...)

  • SPIP FAT - Free Art Template (v2)

    26 février – 23 commentaires

    Squelette minimaliste pour Spip 3 distribué sous Licence Art Libre. Free Art Template est développé et maintenu sur Github, n’hésitez pas à y faire part de vos remarques voire même à contribuer au wiki ! Démonstration du thème : (...)

  • MediaBox

    10 mai 2010 – 406 commentaires

    Aperçu La MediaBox est une Boîte multimédia polyvalente et personnalisable. Le plugin est basé sur la librairie moderne ColorBox, qui a été enrichie et adaptée pour SPIP. Par défaut, mediabox propose 5 habillages. Il est assez facile d’en créer de (...)

  • Formidable, le générateur de formulaires

    23 janvier 2012 – 1394 commentaires

    Un générateur de formulaires facilement configurable pour les non-informaticiens et facilement extensible pour les développeurs. Introduction L’objectif était de créer un plugin permettant de générer des formulaires. Historiquement, 2 plugins avaient (...)

  • Nivo Slider

    2 mars 2011 – 390 commentaires

    Nivo Slider pour SPIP permet d’intégrer des diaporamas en JQuery dans vos articles et squelettes.