Salut les gens,
Je suis tombé sur un problème en travaillant avec la librairie html2pdf, dans une table, j'ai une colonne où est marqué 'Générer PDF', j'obtiens l'index de la ligne en question avec du JQuery que j'envois ensuite à traiter avec Ajax. Voici la page qui traite les informations :

<?php
require_once '../Core/init.php';
require_once '../Classes/Config.php';
require_once '../Classes/DB.php';
$list = json_decode(htmlentities($_POST'list']), true);
$list = implode(", ", $list);
$pdo = DB::getInstance();
$req = $pdo->query("SELECT * FROM fiches WHERE id IN(" . $list . ")");
echo json_encode($req->results());
?>

ensuite dans la réponse avec Jquery, j'aimerais afficher un fenêtre avec le contenu en pdf mais j'y arrive pas, quelqu'un pourrait aider ??
voici le code Jquery :

$('#print').click(function (event) {
        list = ];
        $('.checkboxes:not(#check)').each(function (index, el) {
            var $this = $(this);
            var id = $this.data('id');
            if ($this.parent('span.checked').length > 0) {
                list.push(id);
            }
        });
        $.ajax({
            type: 'POST',
            url: 'mods/ProcessForPrint.php',
            data: {'list': JSON.stringify(list)},
            cache: false,
            success: function (data) {
                var w = window.open();
                var html = data;
                $(w.document.body).html(html);
            }
        })
    });

J'attends avec impatience vos réponses ^^. Cordialement.

3 réponses


Donovan
Réponse acceptée

Hormis le fait que je ne vois aucun appel à Html2pdf, tant que tu essaiera d'afficher du PDF en utilisant .html() tu auras des soucis ... :)

La solution la plus simple dans ton cas serait de rediriger vers une page qui génère et envoi en sortie le pdf, avec un header force-download. Pour la personne, lorsqu'elle cliquera, le pdf sera lancé en téléchargement, sans ouvrir de nouvelle fenêtre et c'est dans la boite.

Parce que là il te faudra bien plus que ça pour afficher du pdf dans une fenêtre modale ...

Eventuellement, si tu persiste dans cette voix, penches toi sur http://mozilla.github.io/pdf.js/

Et un peu de lecture:
http://stackoverflow.com/questions/291813/recommended-way-to-embed-pdf-in-html

fmronan
Réponse acceptée

je dirais que tu dois appeler ton fichier de sortie: nom_du_pdf.pdf avec ton code php et le stocker sur le server (il y a paramètre dans html2pdf) et faire une redirection vers le fichier pdf.

minedun6
Auteur

Merci Donavan, mais j'ai trouvé une solution assez cool, vu que je faisais le con, à essayer de faire ça en Ajax, j'ai pas bien aimé, donc j'ai entouré mes buttons d'un formulaire, le code de génération de pdf grâce à HTML2PDF est généré dans une autre page et le pdf sera généré dans une nouvelle fenêtre, mais seul maintenant le souci qui reste c'est que le pdf généré est comme suit: http://localhost/pdf.php, j'aimerais faire en sorte que ça devienne comme ça: http://localhost/nom\_du\_pdf.pdf et pas une page php ^^