首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript -以编程方式批量打印HTML文档

Javascript -以编程方式批量打印HTML文档
EN

Stack Overflow用户
提问于 2017-02-16 18:45:33
回答 2查看 1.6K关注 0票数 6

我正在寻找一种批量打印数据库的好方法--从javascript存储的HTML文档

我们的用户通过开源的基于javascript的文本编辑器(CKEditor)生成丰富的文本内容。HTML保存到我们的数据库中,可以通过其内置的打印功能(基本上只是window.print())从编辑器直接打印出来。这是伟大和完美的工作。

现在,我们需要批量打印保存的文件,我正在寻找可行的解决方案。我可以看到各种各样的选择,但都有很大的权衡余地:

  1. 用户选择要打印的文档。JS代码循环遍历文档并逐个调用打印。这里的问题是,用户将看到一堆打印对话框。这很痛苦。(旁白:我们正在使用Chrome,但我没有选择将其设置为kiosk模式)
  2. 用户选择要打印的文档。JS代码将所有这些都合并到一个(隐藏的)容器中,它们都作为一个“文档”打印出来。这些可能是相当大的文档,包括表、图像等。我担心这里涉及的性能,因为我们可能会在DOM中添加大量内容。
  3. 类似于上面的#2,但是在某个时候,文档被转换并保存到一个PDF中。这是可以的,但似乎没有很多好的/成本效益的选择来将HTML转换为PDF。
  4. 生成某种可以处理HTML内容的报告。我看了一下,但是它支持非常有限的HTML标记和CSS属性。

是否有更好的方法从javascript批量打印HTML内容?任何帮助都是非常感谢的!

编辑如per @Paul,我需要澄清几点:

内容是在标准在线文本编辑器中创建的内容。就我而言:

  • 不起作用
  • 无动画
  • 无动态内容

现在,如果我直接从编辑器打印一个打印样式表,那么这可能会使事情变得复杂一些。

EN

回答 2

Stack Overflow用户

发布于 2017-02-19 16:28:23

由于内容可能很大,并且占用了大量内存,所以我会在服务器端这样做。选择客户端上的docs和请求服务器将这些文档呈现给PDF,例如使用PhantomJS。这样,您甚至可以使用移动客户端来获取PDF。

票数 7
EN

Stack Overflow用户

发布于 2017-02-23 03:57:23

我完全同意上面的答案,PhantomJS可能是最好的选择。唯一的问题是,在可靠性方面,PhantomJS已经相当接近,并回顾了过去的几个版本。如果文档的大小变得太大,对幻影来说可能会变得太大(请记住,它最初是为web测试目的而设计的,后来变成了web自动化)。在编写脚本时,我建议遵循下面的大纲(将流程分解为更易于管理的步骤)。

代码语言:javascript
复制
    var steps = [
  function() {
    // step 1
  },
  function() {
    // step 2
  }
]

再说一次,这并不是一个完美的选择,但这是我们目前必须处理的最好的选择。如果你有任何问题,请随意接触,我自己正在致力于网络自动化,所以这一切都将在我的脑海中新鲜。

下载PhantomJS 这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42282221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档