V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhuyw2006
V2EX  ›  Django

请教前端打印的方法

  •  
  •   zhuyw2006 · 2018-09-29 20:08:28 +08:00 · 5444 次点击
    这是一个创建于 2007 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前是 vue + django 前后端分离,前端会做一些报表。
    现在的思路是,前端提交表单到后台,后台查询后的数据会缓存一份(备用,避免二次查询)在返回给前端页面,
    如果要下载 Excel 或者打印,就在提交一次给后台,后台会使用缓存得数据。
    现在问题是,如果选择打印,后台是返回 PDF 还是 HTML 呢?(都是通过 Excel 转换的)
    相同的数据 PDF 要大不少。
    还是前端 js 呢?
    10 条回复    2018-09-30 08:40:03 +08:00
    noe132
        1
    noe132  
       2018-09-29 20:11:47 +08:00   ❤️ 3
    前端 HTML 打印不同浏览器会有不同效果。
    最好是后端生成 pdf,前端下载后打印下载的 pdf
    zhzer
        2
    zhzer  
       2018-09-29 20:25:38 +08:00 via Android
    建议砍功能
    就提供 excel pdf 下载就够了,我想用户很少会直接打印没有合理排版的数据吧
    P233
        3
    P233  
       2018-09-29 20:35:15 +08:00
    CSS media print 处理一下呢?
    zhuyw2006
        4
    zhuyw2006  
    OP
       2018-09-29 20:41:10 +08:00
    @zhzer 有道理,不过基本的打印功能还是要的
    zhuyw2006
        5
    zhuyw2006  
    OP
       2018-09-29 20:41:54 +08:00
    @noe132 我也是偏向这种方式的
    leekafai
        6
    leekafai  
       2018-09-29 23:13:18 +08:00 via Android
    html +puppeteer。我之前做过一个这样的项目,是打印健康报告的,我觉得用 html+css media print 在后期比较好调整。
    gy911201
        7
    gy911201  
       2018-09-29 23:40:54 +08:00
    不建议前端生成 PDF ……
    深圳某社保就是前端生成 PDF 的模式……我在 Mac 下生成出来的 PDF 完全没法看……所以每次我要打社保清单的时候都要找一个 windows 的电脑去操作……非常麻烦……
    STRRL
        8
    STRRL  
       2018-09-30 00:01:31 +08:00 via Android
    大学时候给 zf 做的网站,明确要求是 pdf。可以参考一下。。
    jjplay
        9
    jjplay  
       2018-09-30 01:14:31 +08:00
    我之前直接用 js 读取 excel 然后输出 html 页面打印

    https://github.com/SheetJS/js-xlsx
    zhuyw2006
        10
    zhuyw2006  
    OP
       2018-09-30 08:40:03 +08:00
    @P233 谢谢,我先了解一下

    @leekafai 谢谢您的建议

    @gy911201 确实是这样的

    @STRRL 现在正打算用 pdf

    @jjplay js 用的头晕啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1676 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:00 · PVG 08:00 · LAX 17:00 · JFK 20:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.