修改打印逻辑,先找默认打印机,未找到则直接返回

This commit is contained in:
胡尧
2025-04-29 10:09:41 +08:00
parent dd745423a1
commit 17a29b7b29
2 changed files with 7 additions and 8 deletions

View File

@@ -20,7 +20,7 @@ class JikimoPrinting(models.AbstractModel):
printer = self.env['printing.printer'].get_default() printer = self.env['printing.printer'].get_default()
if not printer: if not printer:
_logger.error("未找到默认打印机") _logger.error("未找到默认打印机")
return return False
# 生成二维码 # 生成二维码
qr = qrcode.QRCode(version=1, box_size=10, border=5) qr = qrcode.QRCode(version=1, box_size=10, border=5)
@@ -57,6 +57,8 @@ class JikimoPrinting(models.AbstractModel):
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
@@ -64,9 +66,7 @@ class JikimoPrinting(models.AbstractModel):
printer = self.env['printing.printer'].get_default() printer = self.env['printing.printer'].get_default()
if not printer: if not printer:
_logger.error("未找到默认打印机") _logger.error("未找到默认打印机")
return return False
_logger.info("PDF打印开始")
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)
@@ -78,9 +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.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

View File

@@ -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)}")