2008-12-18 8 views
8

Je souhaite afficher des documents sur mon site Web. Le serveur est hébergé sur une machine Debian. Je pensais pouvoir autoriser le téléchargement de documents de support, puis utiliser une application Linux ou une application PHP pour convertir le document en PDF et l'afficher dans une page HTML. Y a-t-il des API ou des binaires qui me permettent de faire cela?Comment convertir des documents au format PDF sur une pile Linux/PHP?

Répondre

3

S'il s'agit d'un document Office, une option serait d'utiliser openoffice en mode sans tête. Voir ici pour un script python qui montre comment: http://www.oooninja.com/2008/02/batch-command-line-file-conversion-with.html

S'il s'agit d'un autre type de document (par exemple votre propre document XML), alors vous devrez faire un peu plus de travail. J'ai eu un certain succès en utilisant XSL pour définir une traduction au format docbook, puis en utilisant des outils docbook pour générer le PDF (et divers autres formats). Vous pouvez également utiliser XSL pour aller directement au format PDF si vous avez besoin d'un contrôle plus précis sur l'aspect des choses.

0

Une autre méthode consiste à générer un fichier HTML contenant ce dont vous avez besoin dans le pdf. Ensuite, utilisez htmldoc pour le convertir en PDF.

http://www.easysw.com/htmldoc/

Il est en réalité beaucoup plus facile que de manipuler directement les objets dans un doc PDF.

1

Vous pouvez créer une imprimante PDF d'impression sur fichier et envoyer un nombre illimité de documents à l'imprimante via lpr.

function lpr($STR,$PRN,$TITLE) { 

    $prn=(isset($PRN) && strlen($PRN))?"$PRN":C_DEFAULTPRN ; 
    $title=(isset($TITLE))?"$TITLE":"stdin" . rand() ; 
    $CMDLINE="lpr -P $prn -T $title"; 
    $pipe=popen("$CMDLINE" , 'w'); 
    if (!$pipe) {print "pipe failed."; return ""; } 
    fwrite($pipe,$STR); 
    pclose($pipe); 

    } // lpr() 

//open document... 
//read into $source 
lpr($source, "PDF", $title); //print to device 
exit(); 

De plus, HTMLDOC peut convertir votre code HTML en format PDF.

1

Un projet relativement nouveau, appelé phpLiveDocx peut convertir DOC en PDF (en plus d'un certain nombre d'autres formats). C'est un service basé sur SOAP et peut être utilisé gratuitement. Pour exemple de code pour convertir un DOC en PDF en utilisant phpLiveDocx, jetez un oeil à ce récent blog:

http://www.phplivedocx.org/2009/02/06/convert-doc-to-pdf-in-php/

Bien sûr, comme il est SOAP base, il peut être utilisé sur tous les systèmes d'exploitation qui prennent en charge PHP :-)

Questions connexes