• 版块
  • 标签
  • 热门
  • 用户
  • 群组
Skins
  • Light
  • Default
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Quartz
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Slate
  • Solar
  • Superhero
  • Vapor
Collapse

Odoo 中文社区

ODOO14 批次列印QR碼

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
7 帖子 3 发布者 396 浏览
    • 从旧到新
    • 从新到旧
    • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • S 离线
    S 离线
    samchou
    写于 最后由 编辑
    #1

    現行完成報表列印QR碼
    是先轉成PDF再列印
    要一張一張展開PDF然後列印到印表機
    效率極差
    請問有甚麼辦法批次列印不透過轉成PDF直接丟去印表機列印嗎?

    digitalsatoriD 1 条回复 最后回复
    0
  • digitalsatoriD 离线
    digitalsatoriD 离线
    digitalsatori 管理员
    在 中回复了samchou 最后由 编辑
    #2

    @samchou 用下面这个addons就可以啊:

    https://github.com/OCA/report-print-send/tree/14.0/base_report_to_printer

    【上海先安科技】(tony AT openerp.cn)

    1 条回复 最后回复
    0
  • S 离线
    S 离线
    samchou
    写于 最后由 编辑
    #3

    windows 下無法安裝pycups套件
    導致無法安裝base_report_to_printer套件

    S 1 条回复 最后回复
    0
  • S 离线
    S 离线
    samchou
    在 中回复了samchou 最后由 samchou 编辑
    #4

    已解決
    使用
    c1394da5-0411-41b6-b2d7-409732a4b8de-圖片.png

    1 条回复 最后回复
    0
  • S 离线
    S 离线
    samchou
    写于 最后由 samchou 编辑
    #5
    ### 連續產生QR碼並直接列印至印表機
    import win32print
    import win32ui
    import win32con
    import qrcode
    import odoorpc
    from PIL import Image,ImageWin
    
    db_ip = '192.168.122.X'
    db_name = 'test'
    user_name = ''
    user_password = ''
    
    # Prepare the connection to the server
    odoo = odoorpc.ODOO(db_ip, port=8069)
    # Login
    odoo.login(db_name,user_name,user_password)
    Wt = odoo.env['workticket.wt']
    wt_ids = Wt.search([('wt_status', '=', 'Y')])
    for wt in Wt.browse(wt_ids):
        if wt.wk_status == 'N' :
            total_prt = wt.total_prt + 1
            part_descp = wt.parts.part_descp
            pack_qty = format(int(wt.pack_qty), '.3f')  ##顯示小數點下三位
            NQRCode = wt.name+'_'+wt.style+'_'+part_descp+'_'+wt.color+'_'+wt.size+'_'+wt.materiel+'_'+str(pack_qty)+'_'+str(total_prt)
            qr = qrcode.QRCode(
                version=3,
                error_correction=qrcode.constants.ERROR_CORRECT_L,
                box_size=100,
                border=4,
            )
            qr.make(fit=True)
            qr.add_data(NQRCode)
            img = qr.make_image(fill_color="black", back_color="white")
            printer_name = win32print.GetDefaultPrinter ()
            hDC = win32ui.CreateDC ()
            hDC.CreatePrinterDC (printer_name)
            hDC.StartDoc ('QR')
            hDC.StartPage ()
            dib = ImageWin.Dib (img)
            # 第一行
            x1 = 15
            y1 = 5
            x2 = 485
            y2 = 50
            # 圖片
            x11 = 305
            y11 = 50
            x12 = 485
            y12 = 230
            font = win32ui.CreateFont({
                "name": "Arial",
                # "underline": True, 底線
                "height": 42,
                "weight": 42,
            })
            show = wt.style 
            hDC.SelectObject(font)
            hDC.DrawText (show,(x1,y1,x2,y2), win32con.DT_LEFT)
            
            dib.draw (hDC.GetHandleOutput (),(x11,y11,x12,y12))
    
            hDC.EndPage ()
            hDC.EndDoc ()
            hDC.DeleteDC ()
    

    直接寫成一個PY檔能確實執行
    但是把同樣程式寫入odoo內
    列印卻出現空白

    1 条回复 最后回复
    0
  • S 离线
    S 离线
    samchou
    写于 最后由 编辑
    #6

    已解決
    要在程式內設定紙張格式大小

    digitalsatoriD 1 条回复 最后回复
    0
  • digitalsatoriD 离线
    digitalsatoriD 离线
    digitalsatori 管理员
    在 中回复了samchou 最后由 编辑
    #7

    @samchou 感谢你的信息更新

    【上海先安科技】(tony AT openerp.cn)

    1 条回复 最后回复
    0

  • 登录

  • 没有帐号? 注册

  • Login or register to search.
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
  • 登录

  • 没有帐号? 注册

  • Login or register to search.