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

XSL/XSLT/XPATH XML Discussion :

FOP ne génère pas le PDF


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 161
    Points : 109
    Points
    109
    Par défaut FOP ne génère pas le PDF
    Bonjour,

    je suis en train de faire un upgrade de FOP 0.20.5 vers FOP 0.95.

    1) J'ai remplacé la classe Driver qui est dépréciée, par l'usage de FopFactory approprié:
    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
    private ByteArrayOutputStream convertXmlToPdf(Document doc, File xsltFile)
    		throws IOException, FOPException, TransformerException, ApplicationException, ConfigurationException, SAXException {
     
    		// Step 1: Construct a FopFactory
    		FopFactory fopFactory = FopFactory.newInstance();
    		// Disable strict validation
    		fopFactory.setStrictValidation(false);
     
    		// Step 2: Set up output stream.
    		ByteArrayOutputStream pdfOutputStream = new ByteArrayOutputStream();		
     
    		// Step 3: Construct fop with desired output format
    		Fop fop = fopFactory.newFop(MimeConstants.MIME_PDF, pdfOutputStream);
     
    		// Step 4: Setup JAXP using identity transformer
    		TransformerFactory factory = TransformerFactory.newInstance();
    		StreamSource xstlSource = new StreamSource(xsltFile);		
    		Transformer transformer = factory.newTransformer(xstlSource);
     
    		// concaténation de la liste des icn des illustrations à afficher dans le PDF 
    		// filtrées sur l'applicabilité
    		transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
     
    		transformer.setParameter("imagesPath", clientHelper.getPathManager().getImagesPath());
    		transformer.setParameter("langPackage", clientHelper.getPackageLanguage());
     
    		// Step 5: Setup input and output for XSLT transformation 
    		// Setup input stream
    		DOMSource xmlSource = new DOMSource(doc);
     
            // Resulting SAX events (the generated FO) must be piped through to FOP
            Result res = new SAXResult(fop.getDefaultHandler());
    	transformer.transform(xmlSource, res);
     
    	return pdfOutputStream;
    }
    Cette méthode envoie le flux de sortie au traitement de la requête, du genre 'Servlet' (grosso modo, en enlevant quelques détails):
    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
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)	throws java.io.IOException, ApplicationException {
     
    Document doc = mon xml sous forme de DOM;
     
    response.setContentType("application/pdf");
     
    ByteArrayOutputStream out = (ByteArrayOutputStream) factory.convertXmlToPdf(doc, styleSheetFoFullPath);
     
    if (out != null) {
      byte[] content = out.toByteArray();
      response.setContentLength(content.length);
      response.getOutputStream().write(content);
      response.getOutputStream().flush();
    }
    }
    Ma console Eclipse, m'affiche une belle tartine de 'GRAVE:', 'INFO:', 'ATTENTION:'.. mais pas d'erreurs (je les ai résolues avant).

    Je ne vois pas comment mettre la main sur mon pdf !? L'application ouvre une nouvelle fenêtre qui ne contient rien.

  2. #2
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 161
    Points : 109
    Points
    109
    Par défaut
    C'est à n'y rien comprendre..

    Ce matin, en reessayant de sortir mes pdfs, je ne constate plus ce problème. Les pdfs sont générés normalement.. C'est la magie de l'informatique

Discussions similaires

  1. [FPDF] Erreur : "Le fichier ne commence pas par '%PDF-' "
    Par hAMST dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 04/08/2009, 16h25
  2. Réponses: 2
    Dernier message: 10/09/2007, 19h43
  3. Rapport marche pas en PDF
    Par Woocher dans le forum BIRT
    Réponses: 2
    Dernier message: 26/09/2006, 10h04
  4. [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

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