3 Stimmen

Generierung von PDF über AJAX mit mpdf

Ich verwende die mpdf-Bibliothek, um ein PDF von benutzererzeugtem HTML zu generieren. Ich kann das PDF erfolgreich auf dem Server speichern, aber ich möchte, dass das PDF im Browser für den Benutzer geöffnet wird. Ich habe versucht, die Ausgabemöglichkeiten von mpdf zu verwenden, um die Datei im Browser zu öffnen oder zum Download aufzufordern, aber nichts davon passiert, wenn ich AJAX verwende, um die HTML-Daten an das Skript zu senden.

Hier ist mein AJAX:

$('#save').click(function() {

        var shelf_clone = $('#shelf').clone();
        var shelf = shelf_clone.prop('outerHTML'); 

        $.ajax({
            type: "POST",
            url: "pdf.php",
            data: { html:shelf },
            success: function(response)
            {
                $('#status').html('Datei erfolgreich gespeichert');
            },
        })

    });

Hier ist mein PDF-generierendes Skript:

WriteHTML($stylesheet,1);
$mpdf->WriteHTML($html,2);
$mpdf->Output('shelf.pdf', I);

exit;

?>

Ich verwende AJAX, damit das PDF ohne Verlassen der Seite erstellt werden kann. Gibt es einen Fehler in meinem Code oder sollte ich einen anderen Ansatz verwenden?

0voto

Sajitha Rathnayake Punkte 1626

Um dem Browser anzuzeigen, dass die Datei im Browser angezeigt werden soll

Content-Type: application/pdf
Content-Disposition: inline; filename.pdf

Um die Datei herunterzuladen anstatt sie anzuzeigen

Content-Type: application/pdf
Content-Disposition: attachment; filename.pdf

Oder mit php

header('Content-Type: application/pdf'); 
header('Content-Description: inline; filename.pdf');

-1voto

C. Cahill Punkte 94

Am Ende habe ich AJAX nicht verwendet und stattdessen ein verstecktes Eingabefeld im Formular hinzugefügt und es mit dem folgenden Skript befüllt:

$('#save').click(function() {

    event.preventDefault();

    var shelf_clone = $('#shelf').clone();
    var shelf = shelf_clone.prop('outerHTML');

    $('#save_shelf input[name=shelf]').val(shelf);

    $('#save_shelf').submit();

});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X