打印机自动化打印问题:PNG模糊、A4尺寸设置失败及代码异常
打印机自动化打印问题:PNG输出模糊无背景、无法设置72dpi A4及修改常量后出空白页
我无法实现打印机的自动化打印,遇到以下问题:
- 打印PNG文件时,输出内容非常模糊且没有背景
- 无法设置72dpi的A4打印尺寸
尝试将代码中的常量HORZRES = 8、VERTRES = 10修改为595、842后,打印机仅输出空白纸张,没有任何打印内容。
现有代码
def print_file(file_path): try: HORZRES = 8 VERTRES = 10 PHYSICALWIDTH = 110 PHYSICALHEIGHT = 111 printer_name = win32print.GetDefaultPrinter() hDC = win32ui.CreateDC() hDC.CreatePrinterDC(printer_name) printable_area = hDC.GetDeviceCaps(HORZRES), hDC.GetDeviceCaps(VERTRES) printer_size = hDC.GetDeviceCaps(PHYSICALWIDTH), hDC.GetDeviceCaps(PHYSICALHEIGHT) bmp = Image.open(file_path) if bmp.size[0] > bmp.size[1]: bmp = bmp.rotate(90) ratios = [1.0 * printable_area[0] / bmp.size[0], 1.0 * printable_area[1] / bmp.size[1]] scale = min(ratios) hDC.StartDoc(file_path) hDC.StartPage() dib = ImageWin.Dib(bmp) scaled_width, scaled_height = [int(scale * i) for i in bmp.size] x1 = int((printer_size[0] - scaled_width) / 2) y1 = int((printer_size[1] - scaled_height) / 2) x2 = x1 + scaled_width y2 = y1 + scaled_height dib.draw(hDC.GetHandleOutput(), (x1, y1, x2, y2)) hDC.EndPage() hDC.EndDoc() hDC.DeleteDC() except Exception as e: print("Errors:", e)
内容的提问来源于stack exchange,提问作者moonkush
相关产品推荐
相关产品推荐

