IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Documents Java Discussion :

[FOP 0.20.5] Génération PDF


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut [FOP 0.20.5] Génération PDF
    Bonjour, j'utilise la version 0.20.5 de fop (j'ai pas trop le choix) et j'ai un soucis lors de la création de mon pdf.

    J'utilise le code d'exemple de la version 0.20.5 de fop => ExampleXML2PDF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    protected void transformXsl(File source, File target, InputStream xsl)
    	throws SaxonApiException, IOException{
    		//Construct driver
    		Driver driver = new Driver();
     
    		//Setup logger
    		Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
    		driver.setLogger(logger);
    		MessageHandler.setScreenLogger(logger);
     
    		//Setup Renderer (output format)        
    		driver.setRenderer(Driver.RENDER_PDF);
     
    		//Setup output
    		OutputStream out = null;
    		try {
    			out = new java.io.FileOutputStream(target);
     
    			try {
    				driver.setOutputStream(out);
     
    				//Setup XSLT
    				TransformerFactory factory = TransformerFactory.newInstance();
     
    				Transformer transformer = factory.newTransformer(new StreamSource(xsl));
     
     
    				//Setup input for XSLT transformation
    				Source src = new StreamSource(source);
     
    				//Resulting SAX events (the generated FO) must be piped through to FOP
    				Result res = new SAXResult(driver.getContentHandler());
     
    				setParameter(transformer);
     
    				//Start XSLT transformation and FOP processing
    				transformer.transform(src, res);
    			} catch (TransformerConfigurationException e) {
    				getLog().error(e.getMessage());
    			} catch (TransformerException e) {
    				getLog().error(e.getMessage());
    			} 
    		}catch (FileNotFoundException e) {
    			getLog().error(e.getMessage());
    		} finally {
    			out.close();
    		}
    et dans mes log j'ai comme erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    [ERROR] 
    [STDOUT] Unsupported element encountered: pbs (Namespace: <a href="http://www.bsb.com/pbs/aggregated" target="_blank">http://www.bsb.com/pbs/aggregated</a>). Source context: unavailable
    [STDOUT] [ERROR] 
    [STDOUT] Expected XSL-FO (root, page-sequence, etc.), SVG (svg, rect, etc.) or elements from another supported language.
    [STDERR] (Emplacement inconnu de l'erreur)org.apache.fop.apps.FOPException: Root element must be root, not <a href="http://www.bsb.com/pbs/aggregated:pbs" target="_blank">http://www.bsb.com/pbs/aggregated:pbs</a>
    [STDERR] [error] javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: L'attribut "xpath-default-namespace" n'est pas admis sur l'élément xsl:stylesheet !
    Au niveau de mon xsl j'ai plus ou moins ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <xsl:stylesheet version="2.0"
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"
    	xpath-default-namespace="http://www.bsb.com/pbs/aggregated">
     
    ...
     
    <xsl:template match="/">
    		<html>
    			<head>
    				<title>PBS</title>
    				...
     
    			</head>
    			<body>
    				<div class="pbs">
    					<xsl:apply-templates mode="content" select="/pbs" />
    				</div>
    				<xsl:if test="$displayToc">
    					<div id="nav">
    						<a href="#toc">Back to ToC</a>
    					</div>
    					<div id="toc" class="toc">
    						<a name="toc" />
    						<h1>Table of contents</h1>
    						<xsl:apply-templates mode="toc"
    							select="/pbs/lines-of-business/*" />
    					</div>
    				</xsl:if>
    				<xsl:apply-templates select="/pbs/lines-of-business/*"
    					mode="content" />
    			</body>
    		</html>
    	</xsl:template>
     
    ...
    J'aimerais savoir si quelqu'un une solution ou au moins une piste a creuser

  2. #2
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Je suis pas sûr que le XHTML soit supporter comme format d'entrée par FOP ... Pourquoi ne pas lui balancer du XSL-FO ? C'est tout de même plus logique !
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut
    J'utilise ce fichier xsl car j'ai déja du faire un rapport en html donc je voulais le réutiliser si possible :p et comme je ne connais pas le xsl-fo...

  4. #4
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Par défaut
    Alors pourquoi utiliser FOP ? Le principe c'est de prendre du XSL-FO (format plus ou moins générique) et d'en sortir du HTML, Word, PDF (format spécique / binaire / propriétaire).

    Tu ferais mieux d'utiliser un générateur PDF et un viewer HTML.
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut
    J'ai finalement utilisé:
    Saxon pour transformé mon xml avec un xsl-fo en FO

    ensuite j'ai utilisé FOP pour convertir le FO en PDF

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [c#] Génération PDF : Détection d'une marque non reconnue
    Par PtiBubu dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/06/2006, 15h19
  2. [Mail] Envoi automatique de mail & génération pdf
    Par moabomotal dans le forum Langage
    Réponses: 1
    Dernier message: 01/06/2006, 08h46
  3. [FOP][ERROR][XSD] XML to PDF avec vérification XSD
    Par cash3000 dans le forum Valider
    Réponses: 1
    Dernier message: 09/05/2006, 09h53
  4. PB de génération PDF !!!
    Par elitost dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 27/07/2005, 08h44
  5. [XSLFO & génération pdf] retrait à droite d'un texte
    Par flzox dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 23/06/2005, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo