V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
bluestonemds
V2EX  ›  问与答

请问用 PHP 实现发票套打,大家都怎么做?

  •  
  •   bluestonemds · 2015-12-17 18:13:13 +08:00 · 5070 次点击
    这是一个创建于 3025 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在网上查了一下,有用 excel 制作模板,然后读取打印的,不过 DEMO 我没有跑通。

    15 条回复    2019-02-18 17:11:29 +08:00
    bluestonemds
        1
    bluestonemds  
    OP
       2015-12-17 19:01:42 +08:00
    可以采用 CSS 绝对定位的办法,不过感觉好笨的样子。
    manhere
        2
    manhere  
       2015-12-17 19:07:50 +08:00 via iPhone
    如果是 B/S 结构,建议用报表控件
    cevincheung
        3
    cevincheung  
       2015-12-17 19:13:52 +08:00
    这跟 PHP 毫无关系吧。- -# 参考 @bluestonemds




    @bluestonemds 一点都不笨,除非要做成桌面软件直接调用打印机的,不过即便这样,那也是在软件里进行各个条目的鼠标拖动定位来进行的。这东西本身就这么一个原理。
    wxg4net
        4
    wxg4net  
       2015-12-17 19:21:39 +08:00
    我喜欢用 python 做这个事情.. 批量打印个学生毕业证什么呢 比 excel 或者其它方式操作更快捷、更安全...
    需要 python 打印源码请留言 支持 windows xp 及更高版本系统
    t2doo
        5
    t2doo  
       2015-12-17 19:49:50 +08:00
    @wxg4net 正在学习 python 中, show me the code ,万分感谢老司机
    xuyinan503
        6
    xuyinan503  
       2015-12-17 19:53:05 +08:00
    服务器端打印还是客户端浏览器打印?

    客户端打浏览器需要配置权限,一般来说 js 是无法操作 excel 文件的
    bluestonemds
        7
    bluestonemds  
    OP
       2015-12-17 20:33:11 +08:00
    @xuyinan503 应该采用服务器端还是客户端? 这个软件只是局域网内应用。
    bluestonemds
        8
    bluestonemds  
    OP
       2015-12-17 20:33:33 +08:00
    @manhere 请推荐一款报表控件。
    KiseXu
        9
    KiseXu  
       2015-12-17 20:42:55 +08:00
    @bluestonemds 永远都别指望 css 能准确控制打印尺寸、位置。我试过,如果要定位打印,有三种方法
    : 1.用控件; 2.用 php 生成 PDF 格式文件,打印; 3.把打印位置、大小设置为可调节,让打印人员根据自己浏览器打印情况,调整参数
    xuhaoyangx
        10
    xuhaoyangx  
       2015-12-17 20:58:24 +08:00
    B/S 基本都是用控件,才能最简单的来打印。
    xuyinan503
        11
    xuyinan503  
       2015-12-17 21:02:07 +08:00
    @bluestonemds 我 google 了一下, php 好像没有打印 excel 的框架,至少我没 google 到,只有输出 excel 的框架。所以只能用前端 js 来打印了。

    js 打印主要就是 var app = new ActiveXObject("Excel.application");
    创建一个 activex 对象然后对他进行操作
    activex 这玩意儿一般只有 ie 有效, chrome 不能用网银就是因为这个

    参照下边的做
    打印代码
    http://blog.itpub.net/23278472/viewspace-687180/
    Excel.application 官方文档
    https://msdn.microsoft.com/en-us/library/office/ff198091.aspx
    最下边有 ie 权限配置
    http://www.4byte.cn/learning/4131.html
    xuyinan503
        12
    xuyinan503  
       2015-12-17 21:03:23 +08:00
    如果 js 不成功,请自行 f12 查看错误信息调试
    bluestonemds
        13
    bluestonemds  
    OP
       2015-12-17 21:07:59 +08:00
    多谢各位,我还是没有头绪,决定先用 CSS 试试。
    wxg4net
        14
    wxg4net  
       2015-12-17 21:08:25 +08:00
    @t2doo 不好意思 那个源码是三年前的了 备份不知道放在什么地方了 暂时没有找到。不过和 python 语法没多大关系 都是 win32ui, win32print 等库的用法 目的在于控制打印参数。
    powertoolsteam
        15
    powertoolsteam  
       2019-02-18 17:11:29 +08:00
    @bluestonemds 可以试用一下 ActiveReports 报表控件 https://www.grapecity.com.cn/developer/activereports

    打印衡量报表工具是否专业的重要指标之一,ActiveReports 报表控件无需在客户端安装任何插件,就能够实现打印,支持的典型打印方式包括:预览打印、报表套打、连续打印、多份打印、合并打印、批量打印、单据打印、条码打印等。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3737 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:22 · PVG 18:22 · LAX 03:22 · JFK 06:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.