页面批量导出为pdf
现在有个需求,需要把页面导出为pdf,页面包含文字、表格、echart图,每个用户登录之后,页面的数据都是不同的,要一次导出40个(或者更多)用户的pdf,有什么比较好的解决方案?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
现在有个需求,需要把页面导出为pdf,页面包含文字、表格、echart图,每个用户登录之后,页面的数据都是不同的,要一次导出40个(或者更多)用户的pdf,有什么比较好的解决方案?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(18)
但是有图片的问题,页面上的图片都是动态生成的echart图
生成html,然后html转pdf,可以解决大量样式问题
可以看看xdoc,http://www.xdocin.com
这个我看过,但是我想一下导出40个用户的pdf,这个好像也不行吧,也会很占资源的吧
并且截图不清晰
phantomjs js 了解下。 我们这边也是这样处理的。
我试过前端截图然后生成pdf,就是有跨页不好处理
现在就是这么整的,循环去跑,但是这样挺占资源的,虽然是晚上,但是不是长久之计,想看有没有别的方式
可以做定时任务吗,晚上跑批量去生成
回复
https://blog.csdn.net/qq_15452971/article/details/79401902。。你看下这个网页写的对图片的处理。。这个需求对内存消耗有点大哦,而且,响应时间可能不是想象中的那么美好的。反正,这个类似的需求做好点就到多线程去了。:cold_sweat:
回复
@凶气卡农 :这个网页上是拿已知的图,我的情况是页面的图都是动态生成的echart图。。。我想拿到echart图的图片文件的话,需要echart渲染完,然后js调用echart保存图片的方法,然后再传到后台,然后再渲染到poi里。。。问题在于页面不止一个echart图,而且不止一个页面,我要做批量。。。
回复
https://blog.csdn.net/huyuyang6688/article/details/79710704 考虑一下
回复
这篇文章之前看到过,但都解决不了量大的问题,不知该如何是好
回复
你在仔细想想你这个需求的着重点。量大,图片,开始执行时间,执行时间短。。你觉得真的只需求一点代码就能完成这么大的工作量嘛?你被陷入误区了。。
我主要做后端(java),给你一个很陋的解决方向吧,你这个导出的html需求,我是建立在html都是自己写的情况下哈:
你把这个html做成模版就用户变化的数据,空出来作为填充,然后,当点击导出的,你就后段组装并用poi输出成PDF在服务器,然后。输出完毕(表示很多文件都完成后), 然后对这些文件进行压缩。最后将这个压缩返回给前端。前端在将压缩包进行下载。。
这个是一个解决的方向。你可以把其中的很多东西进行优化。若是,有其他见解也可以提出,一起讨论。
我们现在有一个nodejs+puppeteer的导出服务,跟你描述的情况类似,但是现在只满足导出1个pdf,如果导出多个的话,就要循环,循环太耗费资源了。jfreechart我们讨论过,但考虑它的样式与页面echart样式不一样,所以不想用。我们领导现在只是想把一个3、4页的导出做成批量的,我们还有100+页的导出,我怕之后领导也想做成批量的。。。
回复
看你这个场景的并发量了...如果量大的话就多部署几台专门的服务器搞这个,不可避免的啊...跟领导说清楚就行
我们原来是搞一个专门生成pdf的服务器,装上chrome,访问相关界面调chrome接口生成pdf,相对于自动截图的感觉;后来公司不愿意部署pdf服务器了,活生生把那些表啊图啊让我用poi和jfreechart搞了一遍