将html文件另存为PDF

时间:2017-07-31 15:59:57

标签: php html pdf

我正在使用PHP输出缓冲区创建动态“数据查看”页面的HTML文件,然后我将此输出作为HTML文件保存到服务器,并希望创建此HTML文件的PDF文件(存储在服务器上)但是我看过的每个解决方案都要求你将HTML代码放入变量中,但我有.HTML文件,我想自动转换为PDF但似乎无法找到解决方案。 / p>

这里的总体想法是通过电子邮件向用户提供数据审核的“副本”,因此我假设PDF是最好的,但如果有任何其他建议,我会很乐意考虑别的。

非常感谢任何帮助。

谢谢!

2 个答案:

答案 0 :(得分:20)

我已经非常注重用PHP生成PDF,所以这就是我几年来发现的......

PDF转换工具

  • FPDF

    • 如果你想使用 PDF方法生成一个PDF文件,这个选项真的很好(我会把它硬币化,因为你逐字地生成PDF)。

      • 功能包括:

          
            
        • 选择度量单位,页面格式和边距
        •   
        • 页眉和页脚管理
        •   
        • 自动分页
        •   
        • 自动换行和文字对齐
        •   
        • 图片支持(JPEG,PNG和GIF)
        •   
        • 颜色
        •   
        • 链接
        •   
        • TrueType,Type1和编码支持
        •   
        • 页面压缩
        •   
      • 注释

        • 效果:Fast
        • 费用:Free
        • 易于使用:Difficult
          • 除非你玩很多东西,否则很难使用。
          • 良好的文档。
        • 其他:
          • 文件重复(如果您需要生成PDF,则需要包含页面的HTML版本和页面的FPDF版本)
  • MPDF
    • 如果您想从HTML和CSS生成PDF文件并且仍然有额外的和广泛的PDF自定义,这个选项非常好。
      • 功能包括:
          
            
        • 使用UTF-8编码的HTML生成PDF
        •   
        • 它基于FPDF和HTML2FPDF,具有许多增强功能
        •   
        • 效果:Mediocre
          • 不是最快但是能完成工作
        • 费用:Free
        • 易于使用:Easy
          • 最难的部分是知道什么是MPDF的有效HTML和CSS
          • 很棒的文档。
        • 并非所有CSS都受支持,并且某些CSS扩展导致一些混乱
  • PrinceXML
    • 如果您需要高性能和高可靠性,此选项可能是最佳选择。
      • 功能包括:
          
            
        • 强大的布局      
              
          • 页眉和页脚
          •   
          • 页码,双面打印
          •   
          • 表,列表,列,浮点数
          •   
          • 脚注,交叉引用
          •   
        •   
        • 网络标准      
              
          • HTML,XHTML,XML,SVG
          •   
          • 层叠样式表(CSS)
          •   
          • 的JavaScript / ECMAScript的
          •   
          • JPEG,PNG,GIF,TIFF
          •   
        •   
        • PDF输出      
              
          • 书签,链接,元数据
          •   
          • 加密和文档安全
          •   
          • 字体嵌入和子集化
          •   
          • PDF附件
          •   
        •   
        • 易于集成      
              
          • PHP和Ruby on Rails
          •   
          • servlet的Java类
          •   
          • .NET for C#和ASP
          •   
          • VB6的ActiveX / COM
          •   
        •   
        • 字体&统一      
              
          • OpenType字体,TrueType和CFF
          •   
          • Kerning,Ligatures,Small Caps
          •   
          • 中文,日文,韩文,阿拉伯文,希伯来文,印地文等
          •   
        •   
        • 友好支持      
              
          • 提示电子邮件支持
          •   
          • 网络论坛,用户指南
          •   
          • 定期升级
          •   
        •   
        • 效果:Fast
        • 定价:$$$
          • 服务器许可证
              
                
            • 1份牌照 - $ 3,800
            •   
            • 2牌照 - $ 3,420
            •   
            • 3牌照 - $ 3,040
            •   
            • 4牌照 - $ 2,850
            •   
            • 5+许可证 - $ 2,800
            •   
          • OEM(最低承诺期为2年,可以在任意数量的服务器上运行;因此,如果您确实需要,可以创建服务器场)
            • 每月20,000份文件,5,000美元
            • 10万份文件/月,7,500美元
            • 每月500,000份文件,10,000美元
          • 他们的学术折扣为50%,1,900美元,桌面许可证为495美元以及其他计划(详见here
        • 易用性:Easy
        • 我没有直接使用过PrinceXML(价格昂贵),但我们目前正在考虑将此作为我们业务的选择。
  • DocRaptor

    • 如果您想要高质量的API,这个选项非常好。这是用于创建PDF和XLS文件的云托管选项。在后端使用PrinceXML。

      • 功能包括:

          
            
        • 您只需发送HTML,JS和CSS
        •   
        • 保证正常运行时间
        •   
        • 文档尺寸无限
        •   
        • 专家支持,包括文档调试
        •   
        • 几乎提供了PrinceXML所做的一切,但请仔细检查他们的支持或文档,了解您可能需要的任何具体内容。
        • 基于API:适用于PHP,NodeJS,Ruby,Python,Java,C#
        • 效果:Fast
          • 取决于互联网连接,因此,如果您的互联网出现故障,代码的这一部分也会出现故障。
        • 定价:$ - $$$
          • 目前,他们的定价计划如下(取自website):
              
                
            • 基本 - 125 docs / mo - $ 15 / mo
            •   
            • 专业 - 325 docs / mo - $ 29 / mo
            •   
            • Premium - 1,250 docs / mo - $ 75 / mo
            •   
            • 最多 - 5,000个文件/月 - 149美元/月
            •   
            • 青铜 - 15,000 docs / mo - $ 399 / mo
            •   
            • 银 - 40,000 docs / mo - $ 1,000 / mo
            •   
            • Gold - 100,000 docs / mo - $ 2,250 / mo
            •   
            • 企业 - ∞docs/ mo - 不公开(与他们联系)
            •   
        • 易于使用:Very easy
          • 可能是最简单的,因为您实际上并未处理文档或设置等。您只需发送文件并获取PDF格式。
          • 精彩文档
        • 我过去曾联系过他们的支持,实际上非常有帮助。
        • 他们使用专有的JavaScript引擎,允许您使用delayed or asynchronous JavaScript
  • wkhtmltopdf
    • 如果你想在上面购买的选项(PrinceXML和DocRaptor)背后的下一个最好的东西,这个选项真的很棒。
      • 功能包括:
          
            
        • [使用] Qt WebKit渲染引擎
        •   
        • 创建要转换为PDF(或图像)的HTML文档。通过该工具运行HTML文档。
        •   
        • 效果:Fast
        • 费用:Free
        • 易于使用:Easy
          • 除非使用MikeHaertl
          • 创建的库,否则使用命令行
        • 我们目前使用此选项并发现它的效果非常好,并且对HTML标记和CSS属性有很好的支持。
        • 如果需要将变量发送到需要生成的PDF页面,则不能使用$_SESSION变量,因为这是通过命令行运行并使用单独的浏览器。您需要通过$_GET变量传递所有变量。
  • 其他选项:许多来自this问题

其他选项

我们与许多供应商打交道。一些供应商向我们发送PDF文件用于发票或其他文件,而其他供应商向我们发送HTML电子邮件(包含我们的所有发票信息),还有一些供应商甚至向我们发送发票的链接。

最简单的选择是以HTML格式创建文档,并向用户发送指向该文档的链接(显然是安全的)。这将允许用户随时(以及从具有浏览器的任何设备)查看发票,并且还允许用户在需要时从浏览器进行打印。此方法还会为您的网站带来流量,这通常也有利于业务。

我们过去所做的是创建一个链接到网站上的文件(安全),以便他们可以在浏览器中查看它,然后有一个按钮来下载发票(只需下载一个使用上面列出的PDF转换工具生成的该网页的PDF版本 - 目前为wkhtmltopdf)。

在我看来,最好的方法是将所有交付方法合二为一。在电子邮件的HTML内容中发送包含文件信息的电子邮件,并附上该文件的PDF。在电子邮件内容的标题部分(位于电子邮件顶部)内,发送一个链接,让收件人可以直接访问包含所有信息的网页(位于其安全门户中的帐户中)。这样他们就可以在浏览器中查看它,以防万一他们无法在电子邮件中正确查看它,以防他们没有PDF查看器(我知道它现在很少见,但你和令人惊讶的是,有多少人有过时的系统 - 我们仍然需要向一些客户发送传真,因为他们仍然没有收到电子邮件;是的,现在仍然在2017年,叹息......)。在您的网站上,还为他们提供PDF文档的下载链接(这将再次访问他们当前所在的页面并将其转换为PDF并通过浏览器自动下载)。

我希望这有帮助!

答案 1 :(得分:0)

我想在可能的解决方案列表中添加另一个选项。 Aspose.PDF Cloud API还提供了将HTML转换为PDF的功能。它为所有流行的编程语言提供SDKs

用于HTML到PDF转换的PHP示例代码:

//Html file with resource files
$name = "HtmlWithImage.zip";
$html_file_name = "HtmlWithImage.html";
$height = 650;
$width = 250;
$src_path = $name;
$response = pdfApi->getHtmlInStorageToPdf($src_path, $html_file_name, $height, $width);
print_r($response);
echo "Completed!!!!";

我与Aspose合作,作为开发人员。