不太确定这里是否有人使用过DOMPF,但我需要帮助。有一个插件(post pdf export),可以使用dompdf将帖子导出为pdf。我只需要生成一些html(<html><body><p>PUT INVOICE HERE</p></body></html>
) 并将其导出到PDF对象并将其附加到电子邮件。我已经得到了所有“正在执行”的代码,但生成的PDF不会在Adobe Reader中打开,但由post PDF export插件生成的PDF会打开。我不知道我错在哪里,但这里有一些基本知识(请有人告诉我我缺少什么):
1) 包括DOMPPDF类(在functions.php中):
define(\'SSM_PLUGIN_PATH\' , plugin_dir_path( __FILE__ ) );
include(SSM_PLUGIN_PATH.\'/dompdf/dompdf_config.inc.php\' );
2)添加管理子菜单项并调用我的功能:
add_submenu_page(
\'ssm_main_menu\', // Parent Slug
\'Test PDF\', // Page Title
\'Test PDF\', // Menu Title
\'manage_options\', // Capability
\'test-pdf\', // Menu Slug
\'test_pdf_handler\' // Function
);
3)函数将html导出为pdf:
function test_pdf_handler()
{
$stuff = \'<html>
<body>
<p>
PLEASE WORK!!!
</p>
</body></html>\';
set_time_limit(300);
ini_set(\'memory_limit\', \'-1\');
$dompdf = new DOMPDF();
$dompdf->load_html($stuff);
$dompdf->set_paper( \'letter\' , \'portrait\' );
$dompdf->render();
$dompdf->stream(\'sample.pdf\');
exit();
}
4)结果-无法打开的PDF。。。
帮助
UPDATE: 更让人困惑的是,post-pdf插件dompdf目录可以完美加载,但当我直接从git获取dompdf包并将其包含在插件中时,它无法加载。如果有人不知道发生了什么,有人能推荐另一种在WordPress插件中用PHP生成PDF的解决方案吗?
UPDATE 2: 在创建一个空白插件来测试这一点(看看我的插件有什么错误)之后,我确实注意到了一个区别。我的插件使用短代码将内容推送到前端,所以我经常收到错误消息Warning: Cannot modify header information - headers already sent by (output started at H:\\...
. 因此,为了解决这个问题,我在插件中添加了以下内容以清除该错误,但我相信这会导致PDF创建失败:
add_action(\'init\', \'do_output_buffer\');
function do_output_buffer() {
ob_start();
}