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 Discussion :

convertir une page HTML en PDF


Sujet :

ASP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Points : 12
    Points
    12
    Par défaut convertir une page HTML en PDF
    bonjour

    J'aurai encore besoin de votre aide

    J'ai une page asp avec plusieurs option, et une de ses option et de créer un PDF.
    Donc lorsque que j'appuie sur ce bouton une nouvelle page asp vas s'ouvrir et j'aimerai convertir cette page automatique en pdf.
    (pour indication cette page comporte quelque CSS)

    En regardant sur le net j'ai pu voir quelque composant tel que ASPPDF, mais j'aimerai en trouver un gratuit.

    merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Perso, j'utilise HTMLDOC qui me convient très bien.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    d'ac je pensé également partir la dessus

    et est ce que tu as un petit script a me proposer stp?

    par contre HTMLdoc ne risque pas de planté vu qu'il y a du css?

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Voila un extrait de code :

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    ' ******* génération du fichier HTML à la volée
    Set FSO = Server.CreateObject("Scripting.FileSystemObject") 
    name_fileHTML = "fic" & Session.SessionID & ".html"
    dir = Server.MapPath(name_fileHTML)
    set inF = FSO.OpenTextFile(dir, 2, true)
     
    ' ****** La ligne de commande
    CmdeHTMLDOC = chr(34) & "C:\Program Files\HTMLDOC\ghtmldoc.exe" & _
    chr(34) & "  -t pdf --quiet --size A4 " & _
    " --landscape --footer ... --bottom 5 --top 13 --left 10 --right 10 --browserwidth 1650 --fontsize 10 " & _
    " --header ... --webpage -f "
     
    CodeHtml = ""
    CodeHtml = CodeHtml & "<html>"
     
    CodeHtml = CodeHtml & "<head>" & vbcrlf
    CodeHtml = CodeHtml & "<meta http-equiv=""refresh"" content=""2"">"
    CodeHtml = CodeHtml & "</head>" & vbcrlf
    CodeHtml = CodeHtml & "<body>"
     
    CodeHtml = CodeHtml & "<p align=""center"">"
    CodeHtml = CodeHtml & "<font face=""arial"" size=""4"" color=""#6495ed"">"
    CodeHtml = CodeHtml & "<strong>"
    CodeHtml = CodeHtml & "Titre de la page" CodeHtml = CodeHtml & "</strong>"
    CodeHtml = CodeHtml & "</font>"
    ...........
    CodeHtml = CodeHtml & "</body></html>"
    inF.write CodeHtml
     
    'fermeture fichier HTML
    inF.close
    Set inF = Nothing
     
    ' ******* génération du fichier PDF
    set wshell = Server.CreateObject("wscript.shell")
     
    ' ******* Ligne de commande complétée par les chemins 
    ' ******* des fichiers source HTML et de destination en PDF :
     
    fic_html = dir
    fic_pdf = Server.MapPath("Fiche.pdf")
     
    wpath = CmdeHTMLDOC & chr(34) & _
    fic_pdf & chr(34) & " " & chr(34) & fic_html & chr(34)
     
    ' ******* Lancement de la commande
    wshell.Run wpath, SW_SHOWNORMAL, true
    Set wshell = nothing
     
    FSO.DeleteFile(Dir)
    Set FSO = Nothing
     
    Response.write "<script>window.open(""Fiche.pdf"", ""fenetre2"", 'resizable=yes,width=900,height=600,left=50,top=50');</script>"
     
    ' ******* Fin du script
    Response.End
    %>

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    par contre j'ai installé la version 1.8.27 de htmldoc et il me demande une licence

  6. #6
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    J'utilise la version 1.8.23 qui est libre.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 24
    Points : 12
    Points
    12
    Par défaut
    mais la page que je veux mettre en pdf s'appelle facture.asp?fact=10040141&num=1001335 parce que pour remplir la feuille je dois avoir des renseignement qui viennent d'une base de donnée

    est-ce possible?

  8. #8
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    HtmlDoc permet de convertir une page html en pdf.

    Dans l'extrait code que je t'ai donné, tu peux utiliser des valeurs issues d'une base de données pour construire ta page html.

    Et c'est page html qui sera convertie en utilisant HtmlDoc.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CodeHtml = CodeHtml & "<p align=""center"">"
    CodeHtml = CodeHtml & "<font face=""arial"" size=""4"" color=""#6495ed"">"
    CodeHtml = CodeHtml & "<strong>"
    CodeHtml = CodeHtml & "Titre de la page" CodeHtml = CodeHtml & "</strong>"
    CodeHtml = CodeHtml & "</font>"
    CodeHtml = CodeHtml & "Facture N° : " & <%=MonRecordset("NumFacture")%>
    ..........

  9. #9
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    Par défaut
    Je me permet d'intervenir dans votre discussion, non pas pour y apporter mon grain de sel, plutôt pour y prendre des infos.
    J'étais à la recherche d'un code sur asppdf, du coup ta question et les réponses apportées m'intéressent beaucoup.

    J'ai installé htmldoc 1.8.23 sur le server, adapté ton code à mon formulaire...
    la page html est bien créée, puis supprimée... mais il semble qu'il bloque sur la partie création du fichier fiche.pdf. Le popup s'ouvre correctement mais il est incapable d'ouvrir le fichier fiche.pdf (normal il n'existe pas tu me diras....)

    Si tu as des idées...

  10. #10
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Alors, de mémoire, il faut donner les droits d'exécution sur l'exécutable (ghtmldoc.exe) et d'écriture sur le répertoire où est stocké le fichier pdf.

  11. #11
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    Par défaut
    hum hum...
    les droits d'execution sont effectifs pour le system et le compte invité internet...
    le répertoire de destiné est ouvert à l'écriture... 'd'ailleurs le ficiher html est bien créé et rempli...)
    la génération fichier pdf continue pourtant à me renvoyer sur une page 404 qui n'existe effectivement pas...
    Y aurait-il une configuration spécifique que je n'aurais pas fait ? Sachant que je suis sous 2003...

  12. #12
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Depuis le SP3, il me semble que les droits du compte invité ont été restreints.

    Essaie de faire un wshell.Run sur notepad.exe par exemple.

  13. #13
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bonjour

    la génération fichier pdf continue pourtant à me renvoyer sur une page 404 qui n'existe effectivement pas...
    Ce n'est certainement pas un executable qui te redirige vers une page qui n'existe pas (et qui génère une erreur HTTP.404).

    Il existe dans ta page une redirection qui n'a pas lieu d'être (Response.redirect, Server.transfer, ou autre).
    'd'ailleurs le ficiher html est bien créé et rempli...)
    Donc ta génération PDF fonctionne. C'est dans ton script ASP qu'il faut chercher l'erreur, non sur les droits qui semblent être Ok.

    Sachant que je suis sous 2003...
    Pour des tests ? tu as quoi, en prod ?


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  14. #14
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    Par défaut
    Bon, j'ai cassé toute ma page histoire de reprendre sur de bonnes bases!
    Alors, je reprends:
    J'ai recopié tel que le code pc75, vérifié que les droits soient ok pour le client internet sur l'éxécutable htmldoc et sur le répertoire courant.

    Ma page s'ouvre, s'exécute correctement (aucun msg d'erreur et dans la source je ne trouve que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script>window.open("Fiche.pdf", "fenetre2", 'resizable=yes,width=900,height=600,left=50,top=50');</script>
    Dans le popup qui s'ouvert, j'ai donc une page introuvable de type 404 qui fait apel à un fichier fiche.pdf qui n'existe pas.

    Ce n'est certainement pas un executable qui te redirige vers une page qui n'existe pas (et qui génère une erreur HTTP.404).
    je suis d'accord sur le principe mais là, je n'ai rien d'autre à te proposer..

    Il existe dans ta page une redirection qui n'a pas lieu d'être (Response.redirect, Server.transfer, ou autre).
    Rien de rien...

    Donc ta génération PDF fonctionne. C'est dans ton script ASP qu'il faut chercher l'erreur, non sur les droits qui semblent être Ok.
    Non, le fso fonctionne bien puisqu'il crée le fichier html. La création du pdf intervient juste après...

    Pour des tests ? tu as quoi, en prod
    Pareil, win2003 aussi.

    Donc si vous avez d'autres idées ou suggestion, je reste preneur...

  15. #15
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Je te suggère de commencer par faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Response.write(CmdeHTMLDOC)
    Response.end
    Pour vérifier la validité de ta ligne de commande.

    Ensuite copier coller, et lancer cette commande dans une fenêtre DOS dans le répertoire de ton site (inetpub/wwwroot par défaut) et vérifier ensuite que ton pdf est bien créé là où il faut (dans ce même repertoire, donc). S'il ne l'est pas et qu'HTMLdoc ne te renvoie pas de message d'erreur, c'est qu'il l'a probablement créé ailleurs (dans Mes documents, coup classique, ou peut-être dans le repertoire de HTMLdoc).

    Auquel cas, changer la ligne de commande en conséquence


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  16. #16
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    Par défaut
    J'ai laissé un peu de temps avant de reprendre ce post pour éviter de saouler tout le monde et avancer un peu de mon côté.
    Le résultat est tjrs le même coté asp. Coté cmd par contre, le fichier pdf est bien créé avec les commandes générées par la page asp... étrange, non ?

    Du coup, j'ai ré-exécuté la génération asp (aucune erreur...) et fait une petite recherche sur le server à la recherche du pdf au cas où effectivement, il se serait enregistré ailleurs... rien, nada, que dalle...

    Suggestions toujours bienvenues...

  17. #17
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Je viens de relire et je crois avoir oublié un détail.

    Il faut que le fichier pdf existe (avec les droits qui vont bien). C'est htmldoc qui le ré-initialise avec le fichier html généré.

  18. #18
    Membre actif
    Homme Profil pro
    Webmaster Pays Basque
    Inscrit en
    Avril 2004
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster Pays Basque
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 207
    Points : 238
    Points
    238
    Par défaut
    Il faut que le fichier pdf existe (avec les droits qui vont bien). C'est htmldoc qui le ré-initialise avec le fichier html généré.
    Comment ça ? lorsque l'on exécute la commande en dos, il crée le fichier ???Pourquoi ne le ferait il pas depuis asp ? (ce qui serait quand même mieux pour du multi utilisateurs)

  19. #19
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Perso, ça fonctionne comme ça et je n'ai jamais eu de problème de concurence d'accès !

Discussions similaires

  1. convertir une page web en pdf
    Par talkk dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 02/09/2013, 16h02
  2. [PDF] Utilisation de HTML2PDF pour convertir une page php en PDF
    Par LilyP dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 09/05/2013, 12h27
  3. Convertir une page html/php en pdf
    Par dalal bay dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2012, 13h45
  4. Comment convertir une page Web en PDF avec HTMLDOC
    Par Monta^^ dans le forum ASP.NET
    Réponses: 3
    Dernier message: 23/02/2012, 17h28
  5. [PDF] [dompdf] Convertir une page HTML
    Par bourbita.thameur dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 02/04/2009, 15h17

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