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

ASP.NET Discussion :

Mettre en PDF du code HTML implémenté (mise en forme) entre 2 balises d'une DIV


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Par défaut Mettre en PDF du code HTML implémenté (mise en forme) entre 2 balises d'une DIV
    Bonjour,

    Question: Peux-t'on mettre en PDF le contenu HTML entre 2 balises d'une DIV et garder la mise de son implémentation??
    Car quand je fais un innerText sur la div çà me renvois le texte entre toutes les balises du code mais ne conserve pas du tout la mise en forme (tableau par exemple ou listes).
    Et biensur si je fais innerHTML çà me renvois tout avec les balises donc pas intéressant dans mon cas .

    Voilà mon morceau de code behind:

    Ma div (nommée madiv dans le code) est bien entendu en runat="server" et contient entre ses balises le contenu HTML dont je souhaite garder la mise en forme dans mon PDF.

    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
    protected void GeneratePDF_Click(object sender, EventArgs e)
        {
            String path = @"C:\Windows\Temp\monpdf.pdf";
            Document documentPDF = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
     
            try
           {
                PdfWriter.GetInstance(documentPDF, new FileStream(path, FileMode.Create));
                documentPDF.Open();
               documentPDF.Add(new Paragraph(madiv.innerText));
                documentPDF.CloseDocument();
            }
     
           catch (Exception ex)
            { throw ex; }
        }
    Si quelqu'un a déjà eu affaire à cette problématique je suis "Grand" preneur!
    merci à tous! @++

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    C'est loin d'être aussi simple...

    Cas basique, ton HTML contient directement le CSS pour le formatter, alors utilise la classe HTMLWorker ou XMLWorker (XMLWorkerHelper).

    Pour le cas où tu as un fichier CSS, il faut d'abord la charger dans un MemoryStream puis utiliser le XMLWorker et passer le MemoryStream du CSS au XMLWorker.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Février 2013
    Messages : 36
    Par défaut
    Bonjour à tous,

    Voici un petit bout de code VB dans lequel est créé un pdf avec la classe XMLWorkerHelper de itextsharp 5.5.4.0 HTMLWorker étant déprécié dans cette version, cela permet de garder le style et la mise en page html de la source.

    Code vb : 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
     
    Protected Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
         Dim mstrem As MemoryStream = New MemoryStream
         Dim strFileName As String = "newFile_" & Now.Ticks.ToString
         Dim document As iTextSharp.text.Document = New iTextSharp.text.Document(PageSize.A4.Rotate, 30, 30, 30, 30)
     
         Using pdfile As PdfWriter = PdfWriter.GetInstance(document, mstrem)
              document.Open()
              Dim xmlWorker = iTextSharp.tool.xml.XMLWorkerHelper.GetInstance
              Dim result As String = GetHtml()
              Dim strWriter As StringReader = New StringReader(result)
              xmlWorker.ParseXHtml(pdfile, document, strWriter)
              document.Close()
         End Using
     
         AddExportResponse(strFileName, mstrem)
    End Sub
     
    Public Sub AddExportResponse(fileName As String, contentStream As MemoryStream)
         Response.ClearContent()
         Response.ClearHeaders()
         Response.AddHeader("content-disposition", "attachment; filename=" + fileName & "." & "pdf")
         Response.Charset = ""
         Response.ContentType = "text/pdf"
         Response.BinaryWrite(contentStream.ToArray)
         contentStream.Close()
         Response.End()
    End Sub

Discussions similaires

  1. Convertir balise html en mise en forme jsp
    Par rodney733 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 24/04/2012, 10h43
  2. Réponses: 2
    Dernier message: 28/02/2010, 18h34
  3. [XL-2000] Transformation de la mise ne forme Excel en balise HTML
    Par ben_ghost dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/06/2009, 15h43
  4. HTML TextArea (Mise En Forme De Texte)
    Par stevenleferran1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 15/11/2008, 17h35
  5. Code touches virtuels -> mise en forme
    Par Neilos dans le forum Windows
    Réponses: 3
    Dernier message: 18/11/2004, 23h37

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