【问题标题】:HTML To PDF High Resolution [duplicate]HTML到PDF高分辨率[重复]
【发布时间】:2009-12-10 03:45:07
【问题描述】:

可能重复:
Convert HTML + CSS to PDF with PHP?

我想将网页转换为适合打印的高分辨率 PDF。我该怎么做?

【问题讨论】:

  • 您使用什么语言?您使用什么操作系统?你知道像 CutePDF 这样的 PDF 打印机吗?
  • 嗨,php 是语言。我使用的操作系统是 Windows Vista。我会尝试可爱的 PDF。谢谢
  • 网页是否使用它运行的任何脚本来构建内容?如果是这样,你很可能是 SOL

标签: php html pdf-generation


【解决方案1】:

如果你想用代码来做,看看 HTML2PDF 或 FPDF,它们是 php 库,旨在用代码创建 PDF 文档。

如果您将 HTML2PDF 与 PHP 的输出缓冲函数结合使用 即

<?php
    ob_start();
?>
    // put all your html in here
<?php
    $data = ob_get_contents();
    require('html2pdf.php');
    $pdf = new HTML2FPDF();
    $pdf->AddPage();
    $pdf->WriteHTML($data);
    $pdf->Output();
 ?>

显然这是一个非常粗略的例子,但我之前在 php 中使用它来生成 pdf。它确实有一些样式表问题,它似乎忽略了其中的大部分。但是可以通过单独使用 FPDF 并手动构建文档来获得更多控制。

【讨论】:

    【解决方案2】:

    试试:“wkhtmltopdf”它工作得很好(以及它的-开源-)。它使用 webkit 引擎(由 safari、chrome 浏览器使用)并且非常易于使用:

    wkhtmltopdf stackoverflow.com/questions/1878512/ output.pdf
    

    试试吧!也适用于 Linux 和 Windows。易于安装。如果您使用 ubuntu,请输入:

    aptitude install wkhtmltopdf
    

    【讨论】:

      【解决方案3】:

      如果你想用浏览器转换网页,你可以在windows中使用软件,如cutepdf、dopdf等。 但是如果你想通过 php 代码(即时)将网页转换为 pdf,有几种转换方法:

      1. 使用提供的库,您可以尝试html2pdf (php)。 在 java / .net 中可以使用像 pd4ml 这样的库(即使它不是免费的)。

      2. 您可以使用开放式办公室转换器。它可以打开多种文档类型,并转换为pdf。 Open office 提供 API(我在 java 中尝试过,而不是 php)。流程与您打开文档然后转换为 pdf 相同,但您只需在编码中执行此操作。必须有开放的办公服务器守护程序才能通过您的代码监听转换器。看这里http://oodaemon.sourceforge.net/

      如果你想在 PHP 中快速解决,也许你可以使用 html2pdf。

      您使用开放式办公室转换器的优点是输出将与您在浏览器中看到的相同(我已经使用 oodaemon 对其进行了测试)。如果使用库我不确定 100% 如果你在浏览器中打开它会是一样的,因为布局取决于 CSS。 pd4ml 基于 html 和 css 在 pdf 中生成布局(我认为它拥有 CSS 解析器)

      【讨论】:

      • 嗨,杰夫特,我想转换的是使用软件,目前我尝试了 nitro pdf 试用版,但是当我转换 html 时,它不包含该 html 中的任何图像。还有cutepdf,我正在尝试转换html,但我不知道怎么做?有什么好的软件可以测试吗?我想要打印高分辨率的 pdf 文件。这就是为什么。
      • 当然,你可以测试doPDF(免费),或者pdfFactoryPro(非免费)pdf Factory Pro可以将任何文件(只要你能打印)转换成pdf。打开html/word/anything,然后点击打印,选择pdf factory pro。如果您想获得良好的图像分辨率,请选择 pdf factory pro 属性 - 图形选项卡。取消选中下采样图像并取消选中使用 jpg 压缩。它对我有用。
      • @Jef:我有兴趣获得与浏览器中相同的 PDF(特别是:CSS2.1、图像、链接)。如何通过 OO(守护进程)来做到这一点?据我了解,deamon 提供了对 OO 的访问,这意味着输出将以 OO 呈现它的方式呈现。
      猜你喜欢
      • 2013-02-06
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 2013-06-02
      • 2013-02-23
      相关资源
      最近更新 更多