SPIP-Contrib

SPIP-Contrib

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

273 Plugins, 191 contribs sur SPIP-Zone, 36 visiteurs en ce moment

Home page > Strumenti per redattori > 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 ottobre 2005 – di Martin Gaitan – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

Tutte le versioni di questo articolo: [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 Kb

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

Tuoi commenti

Rispondere all'articolo

Chi sei?

Per mostrare qui il tuo avatar, registralo prima su gravatar.com (gratis e indolore). Non dimenticare di fornire il tuo indirizzo email.

Inserisci qui il tuo commento Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Aggiungi un documento

Retour en haut de la page

Ça discute par ici

  • (fr) Zpip-dist en HTML5

    15 juin 2010 – 10 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Une surcharge des squelettes Zpip-dist qui tire parti des nouvelles balises offertes par la spécification HTML5. Attention, ce plugin n’est plus compatible avec les nouvelles versions de Zpip, qui a connu plusieurs incompatibilités de nomenclature (...)

  • (fr) Une licence pour un article

    18 avril 2007 – 25 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Sur une idée originale de erational, voici un plugin permettant de lier une licence à un article.

  • (fr) Plugin Parrainage

    6 novembre 2011 – <blink style='color:red;'>public|spip|ecrire:commentaire</blink>

    Permettre aux utilisateurs d’inviter leurs contacts à s’inscrire sur le site. Description Vous connaissez le web moderne et son cortège d’applis toujours en version « beta » et de buzz sur le dernier réseau à la mode ? Vous voulez vous aussi vous y (...)

  • (fr) Formulaire de contact libre

    27 avril 2011 – 36 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Dans SPIP il n’y a pas un formulaire de contact, mais autant de formulaires de contact que d’auteurs. Cette phrase de Romy, dans son article Une page de contact dans mon SPIP, pointe un petit manque de SPIP. La possibilité d’insérer rapidement un (...)

  • (fr) Plugin Mot de Passe Compliqué

    2 novembre 2007 – 16 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin ajoute un testeur de complexité de mot de passes dans les formulaires de choix de mot de passe de SPIP.