将 PHP 生成的 HTML 内容保存为 PDF 文件
Saving HTML content generated by PHP as a PDF file
我正在尝试将 PHP 生成的 HTML 内容保存为 PDF 文件。
为此,我找到了 FPDF。
我的脚本如下:
if(isset($_POST['content_to_save']) && isset($_POST['name_to_save'])){
$file_name = $_POST['name_to_save'];
$file_content = $_POST['content_to_save'];
require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Helvetica','',12);
$pdf->Cell(40,10,$file_content);
$content = $pdf->Output('../my_folder/'.$file_name.'.pdf','F');
}
我的两个变量 ($file_name
和 $file_content
) 设置为我想要的,没有问题,它在正确的位置使用正确的文件名创建 PDF,但实际内容是文本格式的 HTML 而不是实际呈现的 HTML.
编辑
我现在开始尝试使用TCPDF
我现在的代码如下:
if(isset($_POST['po_content_to_save']) && isset($_POST['po_name_to_save'])){
$file_name = $_POST['po_name_to_save'];
$file_content = $_POST['po_content_to_save'];
require('TCPDF/tcpdf.php');
$pdf = new TCPDF('P', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetFont('helvetica', '', 12);
$pdf->AddPage();
$pdf->writeHTML($file_content);
$pdf->Output('../my_folder/'.$file_name.'.pdf', 'I');
}
但是,现在我得到以下错误:
TCPDF ERROR: Some data has already been output, can't send PDF file
所以在对几个不同的库进行了大量试验和错误之后,我终于找到了 Dompdf
下面的代码现在可以实现我想要实现的目标:
require '../vendor/autoload.php';
use Dompdf\Dompdf;
if(isset($_POST['po_content_to_save']) && isset($_POST['po_name_to_save'])){
$file_name = $_POST['po_name_to_save'];
$file_content = $_POST['po_content_to_save'];
$document = new Dompdf();
$document->loadHtml($file_content);
$document->setPaper('A4', 'portrait');
$document->render();
$output = $document->output();
file_put_contents('../my_folder/'.$file_name.'.pdf', $output);
}
我正在尝试将 PHP 生成的 HTML 内容保存为 PDF 文件。
为此,我找到了 FPDF。
我的脚本如下:
if(isset($_POST['content_to_save']) && isset($_POST['name_to_save'])){
$file_name = $_POST['name_to_save'];
$file_content = $_POST['content_to_save'];
require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Helvetica','',12);
$pdf->Cell(40,10,$file_content);
$content = $pdf->Output('../my_folder/'.$file_name.'.pdf','F');
}
我的两个变量 ($file_name
和 $file_content
) 设置为我想要的,没有问题,它在正确的位置使用正确的文件名创建 PDF,但实际内容是文本格式的 HTML 而不是实际呈现的 HTML.
编辑
我现在开始尝试使用TCPDF
我现在的代码如下:
if(isset($_POST['po_content_to_save']) && isset($_POST['po_name_to_save'])){
$file_name = $_POST['po_name_to_save'];
$file_content = $_POST['po_content_to_save'];
require('TCPDF/tcpdf.php');
$pdf = new TCPDF('P', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetFont('helvetica', '', 12);
$pdf->AddPage();
$pdf->writeHTML($file_content);
$pdf->Output('../my_folder/'.$file_name.'.pdf', 'I');
}
但是,现在我得到以下错误:
TCPDF ERROR: Some data has already been output, can't send PDF file
所以在对几个不同的库进行了大量试验和错误之后,我终于找到了 Dompdf
下面的代码现在可以实现我想要实现的目标:
require '../vendor/autoload.php';
use Dompdf\Dompdf;
if(isset($_POST['po_content_to_save']) && isset($_POST['po_name_to_save'])){
$file_name = $_POST['po_name_to_save'];
$file_content = $_POST['po_content_to_save'];
$document = new Dompdf();
$document->loadHtml($file_content);
$document->setPaper('A4', 'portrait');
$document->render();
$output = $document->output();
file_put_contents('../my_folder/'.$file_name.'.pdf', $output);
}