我需要能够发送PDF版本的PHP页面的HTML(CSS样式完整,因为某些标签在display: none
子句中设置为@media print{}
)作为电子邮件。
我发现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
出于某种原因,这不允许加载网站上的任何页面。所有人都是浏览器网址输入中的旋转轮。
即使我可以将页面内容放入变量并将其解析为send_email.php
,在创建PDF时如何保留CSS属性?
javascript替代方案会更可行吗?
任何帮助都会很出色!
答案 0 :(得分: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);