Compare commits
3 Commits
master_sf_
...
release/re
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
95e2c2db0d | ||
|
|
17a29b7b29 | ||
|
|
dd745423a1 |
@@ -17,6 +17,11 @@ class JikimoPrinting(models.AbstractModel):
|
|||||||
"""
|
"""
|
||||||
打印二维码
|
打印二维码
|
||||||
"""
|
"""
|
||||||
|
printer = self.env['printing.printer'].get_default()
|
||||||
|
if not printer:
|
||||||
|
_logger.error("未找到默认打印机")
|
||||||
|
return False
|
||||||
|
|
||||||
# 生成二维码
|
# 生成二维码
|
||||||
qr = qrcode.QRCode(version=1, box_size=10, border=5)
|
qr = qrcode.QRCode(version=1, box_size=10, border=5)
|
||||||
qr.add_data(data)
|
qr.add_data(data)
|
||||||
@@ -45,19 +50,23 @@ class JikimoPrinting(models.AbstractModel):
|
|||||||
|
|
||||||
# 获取PDF内容并打印
|
# 获取PDF内容并打印
|
||||||
pdf_content = pdf_buffer.getvalue()
|
pdf_content = pdf_buffer.getvalue()
|
||||||
printer = self.env['printing.printer'].get_default()
|
# _logger.info(f"打印内容: {pdf_content}")
|
||||||
_logger.info(f"打印内容: {pdf_content}")
|
|
||||||
printer.print_document(report=None, content=pdf_content, doc_format='pdf')
|
printer.print_document(report=None, content=pdf_content, doc_format='pdf')
|
||||||
|
|
||||||
# 清理资源
|
# 清理资源
|
||||||
pdf_buffer.close()
|
pdf_buffer.close()
|
||||||
temp_image.close()
|
temp_image.close()
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
def print_pdf(self, pdf_data):
|
def print_pdf(self, pdf_data):
|
||||||
"""
|
"""
|
||||||
打印PDF
|
打印PDF
|
||||||
"""
|
"""
|
||||||
_logger.info("PDF打印开始")
|
printer = self.env['printing.printer'].get_default()
|
||||||
|
if not printer:
|
||||||
|
_logger.error("未找到默认打印机")
|
||||||
|
return False
|
||||||
|
|
||||||
pdf_data_str = pdf_data.decode('ascii', errors='ignore')
|
pdf_data_str = pdf_data.decode('ascii', errors='ignore')
|
||||||
decoded_data = base64.b64decode(pdf_data_str)
|
decoded_data = base64.b64decode(pdf_data_str)
|
||||||
@@ -69,15 +78,10 @@ class JikimoPrinting(models.AbstractModel):
|
|||||||
|
|
||||||
# 获取PDF内容
|
# 获取PDF内容
|
||||||
pdf_content = pdf_buffer.getvalue()
|
pdf_content = pdf_buffer.getvalue()
|
||||||
_logger.info(f"处理后的内容前20字节: {pdf_content[:20]}")
|
|
||||||
|
|
||||||
# 获取默认打印机
|
|
||||||
printer = self.env['printing.printer'].get_default()
|
|
||||||
if not printer:
|
|
||||||
_logger.error("未找到默认打印机")
|
|
||||||
return
|
|
||||||
|
|
||||||
printer.print_document(report=None, content=pdf_content, doc_format='pdf')
|
printer.print_document(report=None, content=pdf_content, doc_format='pdf')
|
||||||
# 清理资源
|
# 清理资源
|
||||||
pdf_buffer.close()
|
pdf_buffer.close()
|
||||||
_logger.info("PDF打印结束")
|
|
||||||
|
_logger.info("成功打印PDF")
|
||||||
|
return True
|
||||||
@@ -21,8 +21,6 @@ class MrpWorkorder(models.Model):
|
|||||||
# 执行打印
|
# 执行打印
|
||||||
self.env['jikimo.printing'].print_pdf(pdf_data)
|
self.env['jikimo.printing'].print_pdf(pdf_data)
|
||||||
wo.production_id.product_id.is_print_program = True
|
wo.production_id.product_id.is_print_program = True
|
||||||
_logger.info(f"工单 {wo.name} 的PDF已成功打印")
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
_logger.error(f"工单 {wo.name} 的PDF打印失败: {str(e)}")
|
_logger.error(f"工单 {wo.name} 的PDF打印失败: {str(e)}")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user