欢迎各位兄弟 发布技术文章
这里的技术是共享的
您是否曾被客户要求将页面或内容导出为 PDF?
是的,我知道那种感觉。
我认为这是非技术领域最被低估的开发任务之一。这并不容易,解释起来更难。
我应该选择什么工具?它与主机站点的操作系统兼容吗?有没有模块?
好吧,这不是不可能,但需要时间……
可能比您的客户愿意支付的还要多……
然后,问题通常出现在那些特殊情况下:当您需要导出“示例”表单(不会提交),或者 100% JS 测验时……
当逻辑在客户端时,在服务器端生成 HTML 是很难实现的。您可能认为您需要复制逻辑,以便您可以重新创建最终用户在其屏幕上看到的相同场景。
幸运的是,您不必走那条路:PDF 导出就在这里,将此过程转换为几个简单的步骤:
下载并安装模块
选择要使用的库,并下载依赖项
将 PDF 导出按钮添加到您的视图/节点/页面
而已!
查看以下使用此工具导出为 PDF 文件的 HTML 页面示例:
您可以简单地使用主题的 CSS,但 PDF 导出还提供了一些有用的自定义:
CSS
文件从您的主题中定义多个 css 文件,如果需要,还可以包含一个 print.css 文件。
用于自定义封面或 url 重写的HTML
实现hook_pdf_export_html_alter(&$html, $filename)
。
选择器
您可以完全控制要导出的内容,只需输入要导出的 jQuery 选择器。
一些 PDF 生成器尝试使用 http 而不是简单地在文件系统中查找文件。因此您必须使用绝对 url,因为您需要在 url 上包含您的基本身份验证凭据。
PDF 导出将完成艰苦的工作,启用基本身份验证重写,它将从 $_SERVER 变量中查找凭据,将所有 url 重写到正确的域。
如果您需要其他任何东西,或使用另一个域,您可以简单地在模块上配置它:
PDF Export 正在积极开发中,由CI&T赞助。请继续关注这些即将推出的增强功能:
PDF 导出:节点
带有自定义导出 PDF 按钮的块
与wkhtmltopdf集成
不要犹豫,在模块的问题队列中发布您自己的功能请求。
来自 https://dev.acquia.com/blog/exporting-practically-anything-in-drupal-to-pdfs/31/05/2016/10431