Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[PHP][XSL] Transformation XML en PDF

  midoo2007, le samedi 19 mai 2007 à 13:45:11
Salut,
Je veux faire une application php qui génère des documents xml.
A partir de ces documents xml, j'utilise xsl pour créer des documents xsl:fo.
A partir de ces documents xsl:fo, j'utilise fop pour générer du pdf .
voilâ le code php

<?php



function FOP(&$xml, &$xsl)

{

$this->xml = &$xml;

$this->xsl = &$xsl;



$fopcfg = dirname(__file__).'/fop_config.xml';

$tmppdf = tempnam('/tmp', 'FOP');



if(!extension_loaded('java')) {

$tmpxml = tempnam('/tmp', 'FOP');

$tmpxsl = tempnam('/tmp', 'FOP');

file_put_contents($tmpxml, $this->xml);

file_put_contents($tmpxsl, $this->xsl);



exec("fop -c {$fopcfg} -xml {$tmpxml} -xsl {$tmpxsl} -pdf {$tmppdf} 2>&1");



@unlink($tmpxml);

@unlink($tmpxsl);

} else {



$xh = xslt_create();

$file=fopen("C:\Program Files\EasyPHP1-8\www\logement\fop-0.20.5\build\fop\CinemaFO.xml","r");

$xml=fread($file,50000);

fclose($file);



$file=fopen("C:\Program Files\EasyPHP1-8\www\logement\fop-0.20.5\build\fop\CinemaFO.xsl","r");

$xsl=fread($file,50000);

fclose($file);



$arguments = array(

'/_xml' => $xml,

'/_xsl' => $xsl

);



$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);



$j_fwc = new Java("FOPWrapper");

$j_fw = $j_fwc->getInstance($fopcfg);

$j_fw->run($result , $tmppdf);



}

return($tmppdf);

}



?>



<?php

$xml = file_get_contents("C:\Program Files\EasyPHP1-8\www\logement\fop-0.20.5\build\fop\logement.xml");

$xsl = file_get_contents("C:\Program Files\EasyPHP1-8\www\logement\fop-0.20.5\build\fop\pdf.xsl");





$pdf_filename =FOP($xml, $xsl);

echo $pdf_filename;



?>


Voila le code java

import org.apache.fop.apps.Driver;

import org.apache.fop.apps.Options;

import java.io.File;

import java.io.FileOutputStream;

import java.io.StringReader;

import org.xml.sax.InputSource;



public class FOPWrapper {

private static FOPWrapper _wrapper = null;

private Driver _driver = null;

private Options _options = null;



private FOPWrapper(String config_file) throws Exception {

this._options = new Options(new File(config_file));

this._driver = new Driver();

this._driver.setRenderer(Driver.RENDER_PDF);

System.out.println("FOP Initialized...");

}



public static FOPWrapper getInstance(String config_file) throws Exception {

if(FOPWrapper._wrapper == null) FOPWrapper._wrapper = new FOPWrapper(config_file);

return FOPWrapper._wrapper;

}



public void run(String xml_input, String output_file) throws Exception {

this._driver.setInputSource(new InputSource(new StringReader(xml_input)));

this._driver.setOutputStream(new FileOutputStream(output_file));

this._driver.run();

}

}


Mais ce code affiche le résultat suivant :

C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\FOPBF.tmp



j'ouvrire le fichier FOPBF.tmp et je trouve le message suivant

%PDF-1.3%ª«¬*4 0 obj

<< /Type /Info

/Producer (FOP 0.20.5) >>

endobj

5 0 obj

<< /Length 86 /Filter /FlateDecode

>>

stream

xœs

áÒw3T04Ò3PIã2 QÉ\

é\†

@h¨`j*g¢`nl¨gna¢’«*ᑚ““¯©*kdnT®ž_”“¢©«âÅåÂ Ãø

endstream

endobj

6 0 obj

<< /Type /Page

/Parent 1 0 R

/MediaBox [ 0 0 612 792 ]

/Resources 3 0 R

/Contents 5 0 R

>>

endobj

7 0 obj

<< /Type /Font

/Subtype /Type1

/Name /F1

/BaseFont /Helvetica

/Encoding /WinAnsiEncoding >>

endobj

1 0 obj

<< /Type /Pages

/Count 1

/Kids [6 0 R ] >>

endobj

2 0 obj

<< /Type /Catalog

/Pages 1 0 R

>>

endobj

3 0 obj

<<

/Font << /F1 7 0 R >>

/ProcSet [ /PDF /ImageC /Text ] >>

endobj

xref

0 8

0000000000 65535 f

0000000442 00000 n

0000000500 00000 n

0000000550 00000 n

0000000015 00000 n

0000000071 00000 n

0000000229 00000 n

0000000335 00000 n

trailer

<<

/Size 8

/Root 2 0 R

/Info 4 0 R

>>

startxref

628

%%EOF


Ma question: Comment modifier ce code pour récupérer le fichier pdf?
Merci.....
Configuration: Windows XP
Firefox 2.0.0.3
Répondre à midoo2007  Signaler ce message aux modérateurs

Résultats pour [PHP][XSL] Transformation XML en PDF

Pb xslt transformation avec xsi:schemaLocatio (Résolu) Bonjour à tous, Je cherche à réaliser une transformation xml vers xml. Pour cela j'utilise un parser xslt (xalan pour être plus précis). J'ai déjà réalisé mes transformations mais un nouveau pb a pointé le bout de son immonde museau lors de... www.commentcamarche.net/forum/affich-8247904-pb-xslt-transformation-avec-xsi-schemalocatio
Transformation d'un formulaire HTML en PDF (Résolu) Bonjour à tous, Bon voilà j'ai un problème : je voudrais éditer un PDF avec des champs qu'un utilisateur rempli sur un formualire HTML. Pour cela j'utilise FPDF mais voilà rien ne se passe.... Voiçi mes codes : le php qui génère le PDF... www.commentcamarche.net/forum/affich-1581979-transformation-d-un-formulaire-html-en-pdf
[Recherche Software] pour divers langages (Résolu) Hello, Je cherche un bon soft pour programmer avec plusieurs langages (php, JavaScript, Python, XML, XSLT). J'ai essayé devPHP et éclipse, mais je suis pas vraiment satisfait de ce dernier car on est obligé de créer un Workspace avec tout... www.commentcamarche.net/forum/affich-2341184-recherche-software-pour-divers-langages

Résultats pour [PHP][XSL] Transformation XML en PDF

Transformer un fichier Microsoft Excel (.xls) en PDFTransformer en fichier PDF un fichier Microsoft Excel (.xls) Rien de plus simple ! Ouvrez votre fichier *.xls avec OpenOffice.org Réglez éventuellement la mise en page par le menu Format / Page... Dès lors, 2 solutions pour transformer en... www.commentcamarche.net/faq/sujet-5734-transformer-un-fichier-microsoft-excel-xls-en-pdf
Créer des PDF sous UbuntuPour Ubuntu 7.10 (Gutsy Gibbon) (1) Allez dans le menu "Système" > "Administration" > "Impression" (2) Cliquez sur "Nouvelle imprimante": (3) Choisissez "Print into PDF file" et cliquez sur "Suivant": (4) Sélectionnez "Generic"... www.commentcamarche.net/faq/sujet-6644-creer-des-pdf-sous-ubuntu
[XSL-FO] Comment lire un fichier .FO/.FOB ?Le format XSL-FO est un format de description de page comme PDF ou DVI. Ces fichiers ont généralement l'extension .fo ou .fob, et parfois .xml (On peut les repérer facilement en les ouvrant avec le Bloc-Note: On trouve www.commentcamarche.net/faq/sujet-4760-xsl-fo-comment-lire-un-fichier-fo-fob

Résultats pour [PHP][XSL] Transformation XML en PDF

A L'AIDE PROBLEMES XPRESS CONVERTIR PDF (Résolu)Bonjour, voilà g un gros souci g un fichier de format Xpress (qxp) , je voudrai le transformer en PDF probleme je ne peut plus l'ouvrir sur QUARK==> fichier trop lour ==>memoire épuisée (-108) ==> il pèse 99Mo et oui c'est un gros dossier.... www.commentcamarche.net/forum/affich-4602085-a-l-aide-problemes-xpress-convertir-pdf
Problème d'interprétation de pdf Apache (Résolu)Bonjour, Voila je travail sur un logiciel qui gère lui même la génération de fichiers pdf. Le problème est que je pense, apache n'arrive pas à l'interpréter et le traduit en php, j'obtiens ceci : %PDF-1.3 3 0 obj endobj 4 0 obj ... www.commentcamarche.net/forum/affich-6823993-probleme-d-interpretation-de-pdf-apache
Export en pdf (Résolu)Bonjour, J'ai 26 images en jpg. J'aimerais les transformer en pdf. J'ai déjà converti des images en pdf avec pdf convertor. Mais comment faire pour que les images se suivent à la suite et non pas avoir 26 fichiers pdf ? Merci www.commentcamarche.net/forum/affich-8989026-export-en-pdf

Résultats pour [PHP][XSL] Transformation XML en PDF

PHP - Parser du XMLIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de... www.commentcamarche.net/contents/php/phpxml.php3
Transformations de XML avec XSLTXSLT et XSL/FO XSL (eXtensible Stylesheet Language) possède deux composantes : XSLT, eXtensible Stylesheet Transformation XSL/FO, eXtensible Stylesheet formatting le langage de transformation des données (XSLT, eXtensible Stylesheet... www.commentcamarche.net/contents/xml/xmlxslt.php3
Introduction à XMLPrésentation de XML XML (entendez eXtensible Markup Language et traduisez Langage à balises étendu, ou Langage à balises extensible) est en quelque sorte un langage HTML amélioré permettant de définir de nouvelles balises. Il s'agit effectivement... www.commentcamarche.net/contents/xml/xmlintro.php3