Odoo 中文社区

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    • Users
    • Groups

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    ODOO14 批次列印QR碼

    Odoo 开发与实施交流
    3
    7
    133
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      samchou last edited by

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

      digitalsatori 1 Reply Last reply Reply Quote 0
      • digitalsatori
        digitalsatori 管理员 @samchou last edited by

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

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

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

        1 Reply Last reply Reply Quote 0
        • S
          samchou last edited by

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

          S 1 Reply Last reply Reply Quote 0
          • S
            samchou @samchou last edited by samchou

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

            1 Reply Last reply Reply Quote 0
            • S
              samchou last edited by samchou

              ### 連續產生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 Reply Last reply Reply Quote 0
              • S
                samchou last edited by

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

                digitalsatori 1 Reply Last reply Reply Quote 0
                • digitalsatori
                  digitalsatori 管理员 @samchou last edited by

                  @samchou 感谢你的信息更新

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

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post