如何使用参数使用 FDPF 保存 PDF?

How do you save a PDF with FDPF using parameters?

我有这个按钮,与这个功能相关联:

$('#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;
        }
    });
});

为了解释成功的ajax代码做了什么,首先在浏览器的控制台输出"success!",然后将页面上的某个div替换为修改后的link(刷新页面的某个部分)。

上面的代码有效,并且会转到 indexpdf.php,即:

<?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");
?>

问题是,它应该 testflyer.pdf,加载它的第一页并将我传入的参数写入其中。然后,将自己另存为 flyer.pdf.

没有保存,不知道是什么问题,也不知道是什么问题。

以上所有 PDF 和 PHP 文件都在 /mytheme/ 文件夹中。

如果要保存PDF,设置dest参数为F: 所以,

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

必须是:

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

并将您的写入行重新格式化为:

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

根据documentation,发送文件的目的地。它可以是以下之一:

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.

默认值为I。