2016-04-15 4 views
0

ich diese Taste haben, ist, dass auf diese Funktion gebunden:Wie speichern Sie ein PDF mit FDPF mit Parametern?

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

    var str = "hText=something" + 
     "&cText=also something"; 

    $.ajax({ 
     url: "/wp-content/themes/mytheme/indexpdf.php", 
     data: str, 
     cache: false, 
     success: function (result) { 
      console.log("Success!"); 
      $("#pdfobject").attr("src", "/wp-content/themes/mytheme/flyer.pdf"); 
      var container = document.getElementById("pdfContainer"); 
      var content = container.innerHTML; 
      container.innerHTML = content; 
     } 
    }); 
}); 

Um zu erklären, was die erfolgreiche Ajax-Code der Fall ist, gibt zuerst „Erfolg!“ in der Konsole, die der Browser tut, ersetzt dann ein bestimmtes Div auf der Seite mit einem überarbeiteten Link (einen bestimmten Teil der Seite aktualisieren).

Das obige Code funktioniert, und macht es Weg vorbei ist, indexpdf.php das ist:

<?php 

    $hText = trim(isset($_GET['hText']) ? $_GET['hText'] : ''); 
    $cText = trim(isset($_GET['cText']) ? $_GET['cText'] : ''); 

    require_once('fpdf.php'); 
    require_once('fpdi.php'); 

    // initiate FPDI 
    $pdf = new FPDI(); 

    $pdf->AddPage(); 

    $pdf->setSourceFile("TestFlyer.pdf"); 

    $tplIdx = $pdf->importPage(1); 

    $pdf->useTemplate($tplIdx, 10, 10, 100); 

    $pdf->SetFont('Helvetica'); 
    $pdf->SetTextColor(255, 0, 0); 
    $pdf->SetXY(30, 30); 
    $pdf->Write(0, $hText.$cText); 

    $pdf->Output("D","flyer.pdf"); 
?> 

Das Problem ist, es soll testflyer.pdf nehmen, laden Sie es erste Seite ist und schreiben in meinem vergangen Argumente hinein. DANN, speichern Sie sich als flyer.pdf.

Es ist nicht speichern, ich weiß nicht, was ist los oder was das Problem ist.

Alle oben genannten PDFs und PHP-Dateien befinden sich im Ordner/mytheme /.

Antwort

1

Wenn Sie die PDF-Datei speichern möchten, stellen Sie den dest Parameter wie F: So

$pdf->Output("D","flyer.pdf"); 

muss sein:

$pdf->Output("F","flyer.pdf"); 

umformatieren Ihre Schreibleitung als:

$pdf->Write(0, "$hText $cText"); 

Nach der documentation, Ziel wohin das Dokument zu senden. Es kann eine der folgenden sein:

I: send the file inline to the browser. The PDF viewer is used if available. 
D: send to the browser and force a file download with the name given by name. 
F: save to a local file with the name given by name (may include a path). 
S: return the document as a string. 

Der Standardwert ist I.

+0

Dank! Vielleicht kannst du mir bei einer anderen Frage helfen? Wie würdest du ein PDF laden, dann ein anderes PDF mit generiertem Text erstellen und dieses PDF übereinander schreiben PDF – NoReceipt4Panda

+0

Schreibe eine andere Frage dazu. –

+0

hier ist der Link: http://stackoverflow.com/questions/36752092/how-to-overlay-write-on-top-of-existing-pdf-with-html-generated-pdf – NoReceipt4Panda