【问题标题】:Is it possible to export html content to PDF from client side?是否可以从客户端将 html 内容导出为 PDF?
【发布时间】:2014-09-07 21:39:42
【问题描述】:

我在尝试添加我的网站时遇到问题导出到 PDF 功能

在浏览网络时,我找到了一些解决方案,但没有一个是只是将页面按原样打印到 PDF

http://parall.ax/products/jspdf不能把纯html做成pdf文件。

我知道关于这个问题有很多问题,但没有一个明确的答案:是否可以从客户端将 html 内容导出为 PDF

如果可能的话,我会很高兴知道怎么做。

如果不是,请建议我应该如何从服务器端(java / php / node.js)进行操作。

请注意该页面包含 highcharts 图表和图像:您可以在这里查看:

http://angularjs.liadlivnat.com:8080/campaign

【问题讨论】:

  • @thecbuilder 这不是重复的,因为 jsPDF 不能解决这个问题
  • 啊,不,我重读了你的问题并查看了花哨的 angular-graphomatic-page,没有什么可以将所有 html 转换为 pdf。你必须让它变得更简单,而且你只是一个库,甚至接近 domPDF,因为它们支持最新的 CSS。或者我会考虑使用 phantomJS 之类的东西从图形密集型内容中无头创建一个“png”。
  • 有了 SVG、D3 或其他任何东西,我认为您别无选择,只能在组装任何 PDF 之前创建图像。所以我实际上非常相信像“phantomjs”这样的东西是你唯一真正的选择,假设它甚至可以处理所有 js 的复杂性。这都是 V8、webkit 等,所以它应该 - 但只是将图形无头渲染为“png”将是我的第一个测试。

标签: javascript angularjs pdf


【解决方案1】:

我使用 DOMPDF,它采用内联 PHP,并使用它将所有 HTML 标记(也包括 CSS)转换为 PDF。您可以使用页面末尾的按钮在客户端实现它。

示例:

THE PHP:

<?php

if(isset($_POST['submit'])) 

{   

$content = $_POST['html'];

    if(empty($page))

    {   

        $error = 'Please include at least ONE completed field.';

        }

    else

    {

        include_once('dompdf/dompdf_config.inc.php');

        $dompdf = new DOMPDF();

        $dompdf->load_html($html);

        $dompdf->render();

        $dompdf->stream('Completed_Form.pdf');

        }

}

?>

The HTML:

<input type="submit" name="submit" id="submit" value="Generate PDF" class="submitButton">

这是一个关于如何使用 DOMPDF 以及在哪里下载必要文件的信息视频。

https://www.youtube.com/watch?v=PENbtWrVUjI&index=7&list=FLR4e8kAlnW4FkgpQrGrOfMg

【讨论】:

  • 你没有附上视频。
  • 哎呀,我的错。我修复了帖子。它在底部。该视频将引导您完成 DOMPDF 的设置,并向您展示如何配置“客户端按钮”以转换为 PDF。
  • 但是 php 不是客户端。 OP 要求提供客户端解决方案。
【解决方案2】:

这是一个不错的 HTML 到 PDF 转换的 JS 库 > https://github.com/MrRio/jsPDF

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-01
    • 2016-05-27
    • 2010-11-08
    • 1970-01-01
    • 2012-09-23
    • 2014-08-22
    • 2013-08-29
    • 2010-11-04
    相关资源
    最近更新 更多