Els articles del Gilug en format PDF

  • warning: tempnam(): open_basedir restriction in effect. File() is not within the allowed path(s): (/srv/www/gilug.org/www/site.tree/) in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 802.
  • warning: fopen(): Filename cannot be empty in /srv/www/gilug.org/www/site.tree/public/includes/file.inc on line 803.
  • El fitxer no s'ha pogut crear.

Aques és un mini-article per si els que desenvolupen la web tenenganes de treballar. Bàsicament es tracta d'una idea que s'ha de polir.
Per fer-ho m'he basat en la idea de generar un fitxer en pdf d'una notícia o article de la web del Gilug. Es possible que això et soni. Evidentment no m'ho he pas inventat jo. L'idea està extreta, o copiada si voleu, de la web de Bulma.

Per a fer-ho només ens cat que al servidor on hi ha la web del gilug es disposi de la possibilitat de tenir htmldoc. Amb aquesta eina es poden generar aquest tipus de fitxers a partir d'una pagina en html. Hi ha etiquetes que no estan suportades però tant se val. N'hi ha prou i de sobres.

Per a fer-ho només cal crear un parell d'arxius en php i afegir una linia a gilug.theme.
Comencem pel tema de l'aparença. Per tant aquest sistema de generació del document en pdf serà pròpi de l'aparença, i no de l'aplicació de drupal. Potser seria possible fer un mòdul o alguna cosa així. Tot i que amb Php-nuke potser m'hi veuria en cor (fins i tot potser amb post-nuke), amb drupal si que no. No l'he tocat mai i em fa una mica de respecte :).

Per tant només caldria afegir la següent informació que fa referència a l'enllaç (per exemple després del titol de l'article):

<div style="color: #375988; font-size: 18px; font-family: bitstream vera sans,arial,sans-serif; font-weight: bold; padding-top: 20px; padding-bottom: 10px;">
<?php print check_output($node->title) ?><a href="pdf.php?node=$node->nid"><img src="$this->path/images/pdf.jpg" alt="Versió en pdf" title="Versió en pdf" border="0"></a>
</div>

Amb això es crea un enllaç cap a pdf.php que ha d'estar a l'arrel del Drupal. De la mateixa manera s'ha de crear node.php.

He adjuntat el codi dels dos arxius. Cal deixar molt clar que no tenen cap mena de format espectacular i que són exclusivament per generar el pdf.

node.php
#######
<?
include_once "includes/common.inc";
$result=db_query("select * from node where nid=".$node);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>
<?php
if ($title) {
print $title ." - ". variable_get("site_name", "drupal");
}
else {
print variable_get("site_name", "drupal") ." - ". variable_get("site_slogan", "");
}
?>
</title>
</head>
<body>
<table border="0" cellpadding="8" cellspacing="0">
<tr>
<td><a href="index.php"><img src="themes/gilug/images/logo.png" style="border: 0px;" alt="" title="" /></a></td>
</tr>
<tr>
<td style="vertical-align: top; width: 85%;">
<?php
while($row=mysql_fetch_array($result)){
echo "<h1>".$row[title]."</h1>".stripslashes($row[body]);
}

?>
</td></tr></table>
</body>
</html>
######

pdf.php
######

<?
header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename="gilug_id-$node.pdf"");
passthru("htmldoc --format pdf --left 2.5cm --right 1.5cm --top 1.5cm --bottom 1.5cm " .
"--headfootsize 9 --header 't ' --footer '/' " .

"--size 'a4' --fontsize 10 --charset 8859-15 " .
"--webpage http://www.gilug.org/?q=node/".$node."");

?>

######
En cas que a sourceforge no es pogués instal·lar l'Htmldoc només caldira posar pdf.php en algun servidor que ho soportés i l'enllaç que s'ha definit al gilug.theme que apuntés en aquesta adreça.

Ningú s'animarà?

Va, ja sé que és estiu i que la història aquesta no és res de l'atre mon, però a veure si algú s'anima!

no sé si sourceforge dona acc

no sé si sourceforge dona access a shell i menys si te (o deixa instalar) l'htmldoc.

De tota manera hi hauria una altra possibilitat de generar els pdf fàcilment mitjançant algunes classes lliures que hi ha per php:

http://es2.php.net/manual/en/faq.using.php#faq.using.freepdf

Jo no tinc ni ideia de drupal ni tinc temps per posar-m'hi, però seria una bona ideia implementar-ho.

Salut

D'acord, això es pot fer

Ok, potser és millor aquesta solució. I de ben segur que no és molt complicat de fer. Jo tampoc no en sé pas de drupal, però no hi fa res, això s'ha de fer, sempre i quan algun dels administradors de la web ho canviï.
Potser es podria fer com a opció d'algun mòdul o com a mòdul, però això ja se m'escapa. Potser quan sigui gran.
De moment m'he mirat així per sobre pdfd4php i sembla que servirà.

Ja esta en proves : Compte Comentari Ironic!

Doncs aixo ja que Ningu s'ha dignat ni a dir:

"jo ho intento"

o simplement :

"Fem'ho junts que no tinc gaire temps lliure"

m'he decidit a fer-ho jo mateix solet.

Siusplau si no us es massa molestia i no perdeu gaire el vostre preciat temps algu podra anar mirant i si de cas amb molta calma m'escriu un mail amb el que opineu ?

Per suposat estalvieu-vos comentaris inutils e innecessaris com:

"No es veu prou be, no en tinc ni idea de com es fa i no tinc temps per mirarm'ho pero no es veu be. QUE LO SEPAS".

altres exemples

Fa dies que estic provan varies opcions per una aplicació, les dues que he trobat i provat bastant són les següents:
http://www.fpdf.org
http://www.ros.co.nz/pdf/
M'he quedat amb la darrera.

Cal dir que les dues no requerixen la pdflib

Alex

Per cert

L'hora em sembla que no funciona correctament