【问题标题】:Use Javascript To Print Page As PDF (With Django)使用 Javascript 将页面打印为 PDF(使用 Django)
【发布时间】:2013-08-01 06:49:54
【问题描述】:

我需要将网页转换为 PDF,因为如果不进行转换,它将无法打印/看起来不正确。这是因为网页太大,作为 HTML 文档,浏览器会尝试将其拆分为多个页面(不仅垂直,这很好,但水平,这很糟糕)。虽然我最初计划使用 Django 在服务器端执行此操作,但我意识到几乎所有可用的库都是为 python2 编写的,当时我使用的是 python 3。

所以我唯一的其他选择是客户端。我在 stackoverflow 上唯一能找到的是:convert HTML ( having Javascript ) to PDF using JavaScript,但所有答案都是用 Java 写的,而不是 javascript。

【问题讨论】:

  • 这是您的网页吗?只需指定一个不允许任何内容水平溢出页面的打印样式表。 <link rel="stylesheet" type="text/css" href="/stylesheets/print.css" media="print">
  • @minitech 没有简单的方法可以“缩小”页面上的所有内容。宽度和高度的比例正好是打印出来的,但尺寸是原来的五六倍。
  • 您在 ems 中指定的所有尺寸都像应有的那样吗? ;)
  • @minitech 我没有编写网页,但我可以“控制”它。它是在没有 em 和表格布局的情况下编写的。
  • 嗯……什么样的控制?可以放脚本吗?

标签: javascript python html django


【解决方案1】:

我认为最理想的解决方案是更改样式,使其对打印机更友好,而不是制作成 pdf。

如果它确实必须是使用 Javascript 创建的 pdf,那么有一个库 jsPDF http://parall.ax/products/jspdf 用于使用 Javascript 创建 pdf。您必须自己编写一些内容来解析页面以创建匹配的 pdf。

如果你会使用 php,我推荐使用 dompdf,它是专门为将网页翻译成 pdf 而编写的,所以那里涉及的工作会少得多。 https://github.com/dompdf/dompdf 这个库我真的用过,看起来不错,虽然它不支持所有的css样式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-27
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 2016-04-27
    相关资源
    最近更新 更多