繁体   English   中英

使用PHP将HTML表单数据转换为PDF文件

[英]Convert HTML form data into a PDF file using PHP

我一直在寻找和测试这几天,并且想知道是否有人能指出我的方向不同。 我有一个很长的工作申请HTML表单(jobapp.html)和一个匹配的PDF(jobpdf.pdf),它们对HTML表单和PDF中的所有条目都有相同的字段名称。 我需要获取在表单中输入的用户数据并将其转换为PDF。 这是我到目前为止收集的内容,但不知道我是否正在进行中:

pdftk是唯一可行的第三方应用程序吗?

使用pdftk我将获取为用户收集的$ _POST数据并生成.fdf(user.fdf),然后在.pdf(job.pdf)上展平.fdf。 因此,不知道字段在每个文档中的位置,fdf上的信息会按字段名称填充pdf吗?

我一直在尝试http://koivi.com/fill-pdf-form-fields/tutorial.php

我还查看了“将HTML表单提交到PDF

我已经多次使用fpdf来创建基于php的pdf文档。 以下示例:

require('fpdf.php');

$pdf = new FPDF();

$pdf->AddFont('georgia', '', 'georgia.php');
$pdf->AddFont('georgia', 'B', 'georgiab.php');
$pdf->AddFont('georgia', 'I', 'georgiai.php');

# Add UTF-8 support (only add a Unicode font)
$pdf->AddFont('freesans', '', 'freesans.php', true);
$pdf->SetFont('freesans', '', 12);

$pdf->SetTitle('My title');
$pdf->SetAuthor('My author');
$pdf->SetDisplayMode('fullpage', 'single');

$pdf->SetLeftMargin(20);
$pdf->SetRightMargin(20);

$pdf->AddPage();
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();

您可以从网站本身快速学习这些教程


编辑 :保存表单数据的示例:(是的,非常简单......)

require('fpdf.php');
$pdf = new FPDF();

$pdf->AddPage();
foreach ($_POST as $key =>$data)
{
    $pdf->Write(5, "$key: $data"); //write
    $pdf->Ln(10); // new line
}
$pdf->Output($path_to_file . 'file.txt','F'); // save to file

看看用fpdf创建的这些页面,真的!

在此输入图像描述

在此输入图像描述

http://www.fpdf.org/

那将是图书馆。 我在这里使用它来将图像添加到表单并提交它以创建包含这些图像的PDF: http//productionlocations.com/locations

实际执行的代码非常复杂。

我发现PrinceXML非常容易使用。 它需要您的HTML / XML,应用CSS并将其转换为PDF。 PHP扩展非常有效。 不幸的是,它不是免费的。

您可以考虑的一种方法是使用将任何HTML转换为PDF的在线API。 您可以向他们发送包含用户提交的数据的生成的HTML(更容易生成),并接收高保真PDF。

市场上有很多服务。 我想提一下PDFShift,因为它提供了一个PHP软件包,可以简化您的工作。

一旦你安装它(使用Composer,或直接下载它,取决于你的选择),你可以快速转换HTML文档,如下所示:

require_once('vendor/autoload.php');
use \PDFShift\PDFShift;

PDFShift::setApiKey('{your api key}');
PDFShift::convertTo('https://link/to/your/html', null, 'invoice.pdf');

就是这样。 您可以实现许多功能(访问安全文档,添加水印等)。

希望有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM