SPIP-Contrib

SPIP-Contrib

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

279 Plugins, 195 contribs sur SPIP-Zone, 95 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 ?
  • [Se connecter]

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

  • Rubriqueur

    1er octobre – commentaires

    Créer rapidement une arborescence complète de rubriques Ce plugin permet de créer rapidement une arborescence complète de rubriques à partir d’une simple liste saisie dans un formulaire. L’arborescence peut être créée à la racine du site ou dans (...)

  • Accès Restreint Partiel

    8 septembre – 11 commentaires

    Voulez-vous masquer une partie du contenu de vos articles aux visiteurs de passage ? et réserver la totalité à certains de vos membres ? Voulez-vous remplacer le contenu occulté par un appel à l’action (pour devenir Membre, bla bla bla...) ? Le plugin (...)

  • Social tags

    8 septembre 2008 – 377 commentaires

    Le plugin Social Tags permet d’ajouter des icônes de partage de liens vers les sites tels que Digg, Facebook, Delicious.... Une fois le plugin installé et activé (voir doc.), le choix des sites se fait via un menu de configuration. Insertion dans (...)

  • Albums 3

    8 août – 23 commentaires

    Le plugin « Albums » évolue dans une version 3 pour SPIP 3. Avant d’effectuer une mise à jour depuis la version 1 ou 2, consultez les notes sur la rétro-compatibilité. Les modèles, notamment, on reçut quelques changements pour la bonne cause. En (...)

  • GIS 4

    11 août 2012 – 796 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)