使用 MPDF 将 HTML 保存为 PDF 和电子邮件
Posted
技术标签:
【中文标题】使用 MPDF 将 HTML 保存为 PDF 和电子邮件【英文标题】:Save HTML as PDF and email using MPDF 【发布时间】:2014-01-23 11:10:45 【问题描述】:我需要能够以电子邮件的形式发送 php 页面的 html 的 PDF 版本(CSS 样式保持不变,因为某些标签在 @media print
子句中设置为 display: none
)。
我发现mpdf 看起来相对简单,而且似乎是一个可靠的解决方案。该课程提供了即时email a PDF file 的能力。这很棒。
我的困境如下:
我想将page_1.php
的内容作为 url 变量发送到send_email.php
以用作 PDF 内容。
我试过存储这个变量:
ob_start(); // at the top of the page
// THE DYNAMICALLY GENERATED PAGE CONTENT
$html = ob_get_contents(); // I put the page contents into a variable
ob_end_clean();
由于某种原因,这不会让页面完整加载。只显示几个标签。 ob_get_contents();
和 ob_end_clean();
位于末尾 </html>
标签之前。这是一个潜在的原因吗?
我需要在页面结束之前使用这些函数来利用我创建的实际“电子邮件链接”上的变量。
我也试过了:
$page_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; // to grab the current url
$html = file_get_contents($page_url); // place contents in a variable
由于某种原因,这不允许加载网站上的任何页面。得到的只是浏览器 url 输入中的一个旋转轮。
即使我可以将页面的内容放入一个变量并将其解析为send_email.php
,我如何在创建 PDF 时保留 CSS 属性?
javascript 替代方案会更可行吗?
任何帮助都会非常出色!
【问题讨论】:
PS:我想把php文件的OUTPUT转成PDF 会为您的目的包括工作吗?但是,如果您在 sendemail.php 中包含整个 page_1.php,为什么不在 page_1.php 中包含发送电子邮件的代码? @BFDatabaseAdmin,这可能会解决 CSS 样式保留的问题。但是我仍然需要将页面的内容放在一个变量中才能与 MPDF 一起使用.. 我没有使用过 MPDF,所以这是碰巧的东西,但 Curl 会帮助你吗? ***.com/questions/692962/… 【参考方案1】:我已成功将 html 发布到 php 文件:
$html = $_POST['html'];
$head.= '<link rel="stylesheet" type="text/css" href="/app/css/app.css" /> ';
$head.= '<link rel="stylesheet" type="text/css" href="/app/css/pdf_style.css" /> ';
require_once 'mpdf/mpdf.php';
$mpdf = new mPDF('', 'Letter', 0, '', 12.7, 12.7, 12.7, 12.7, 0, 0);
$mpdf->WriteHTML($head.$html,0);
【讨论】:
以上是关于使用 MPDF 将 HTML 保存为 PDF 和电子邮件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 php mpdf 库将多个 PDF 文件合并为一个 PDF
使用 mPDF 错误在 codeigniter 3 中将 html 导出并下载为 pdf 错误:找不到类“Mpdf\Mpdf”