PHPForm生成PDF发送到电子邮件

时间:2011-02-08 01:47:36

标签: php forms pdf

我是PHP的初学者我想知道这是否容易,或者我是否必须将其外包给程序员 -

基本上,当用户填写PHP表单并提交时,我需要将其生成为PDF,然后通过电子邮件发送/附加到我的电子邮件,而不是提交此表单的用户。

我看过tcpdf,fpdi,但我不认为这些脚本中的任何一个允许我专门做这个,因为我听到它为用户生成下载链接,这不是我需要的。

如果有人能帮助我,我将不胜感激。

此致 汤姆

1 个答案:

答案 0 :(得分:1)

您可以使用FPDF从数据创建PDF并使用FPDF的Output方法,该方法也可以将生成的PDF作为字符串返回。因此,您可以将其编码为Base64并创建多部分消息,以将.pdf作为附件发送到您的收件箱。

这是从Minimal FPDF教程(http://www.fpdf.org/en/tutorial/tuto1.htm)复制粘贴的代码

<?php
require('fpdf.php');

$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont( 'Arial', 'B', 16 );
$pdf->Cell( 40, 10, 'Hello World!' );

//documentation for Output method here: http://www.fpdf.org/en/doc/output.htm
$attach_pdf_multipart = chunk_split( base64_encode( $pdf->Output( '', 'S' ) ) );

现在使用默认的mail()函数并创建一个多部分消息,并使用这些标题将文件附加到您的消息中。

$msg .= "Content-Type: application/octet-stream; name=\"attachment.pdf\"\r\n";
$msg .= "Content-Transfer-Encoding: base64\r\n";
$msg .= "Content-Disposition: attachment\r\n";
$msg .= $attach_pdf_multipart . "\r\n";

(假设您已在$ msg字符串中定义了所需的邮件标题,多部分边界等)。