如何使用参数使用 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。
我有这个按钮,与这个功能相关联:
$('#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。