有没有什么好方法可以让用户将页面保存为文件以便以后清理查看,可能是PDF?需要尊重@media print CSS。
考虑的选项:
我缺少一种更简单的方法吗?或者通过其中一个选项找到障碍的好方法?
答案 0 :(得分:0)
我以前必须这样做,所以我知道你的痛苦。让我告诉你我的解决方案,然后给你正确的代码。
我决定让用户下载整个页面的PDF。我想要一个将HTML呈现为PDF的库。另外,我知道我需要不同的CSS而不是我的核心网站。但是,我不想复制它(比如媒体查询支持......用于制作新的换行符等)。所以,我最终使用dompdf,媒体类型的投影仪,并通过使用Zend Framework的一些内置工具加载我的同一页面来加载我的网站。 (此解决方案不需要ZF。)
让我们这样做(哦 - 是的,这不是完美的,但它会让你非常接近!)
1)下载domPDF
2)在dompdf_config.custom.inc.php文件中,取消注释或添加或以下任何行(是的,这不是完美的,但我不知道很多投影机使用这种媒体类型):
define("DOMPDF_DEFAULT_MEDIA_TYPE", "projection");
3)然后,修改您的CSS以获得媒体查询:
@media projection {
// all of your css to make sure this works fine - like page breaks
}
4)当然,最后使用像file_get_contents()或curl这样的内容来获取整个页面。
这是我最后一段代码的样子($ html =要保存的页面的全部内容)
require_once(APPLICATION_PATH . '/../library/dompdf/dompdf_config.inc.php');
$dompdf = new DOMPDF();
$dompdf->set_protocol('http://');
$dompdf->set_host($options->domain);
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream('Printed.pdf');