热汤里头的咸鱼 2023-12-21 08:16 采纳率: 33.3%
浏览 9

python 打印首选项

python用win32print和win32ui设置打印机首选项纸张大小方向并打印,但是打印成功了首选项却没有设置成功,纸张大小依旧是设置大小,找了很多依旧没能解决,只使用win32print打印的话能够运行代码不报错,但是打印的文件0kb出错无法打开。我也问过chatgpt但是得不到有用的答复。谁能稍微救我一下子……


import win32con
import win32print
import win32ui

def pdf_print_device():
    try:
        default_printer = win32print.GetDefaultPrinter()
        printdefaults = {"DesiredAccess": win32print.PRINTER_ALL_ACCESS}
        handle = win32print.OpenPrinter(default_printer, printdefaults)

        try:
            properties = win32print.GetPrinter(handle, 2)
            devmode = properties['pDevMode']
            devmode.PaperLength = 1000
            devmode.PaperWidth = 1000
            devmode.PaperSize = 0
            devmode.Orientation = win32con.DMORIENT_LANDSCAPE
            # properties['pDevMode'] = devmode
            win32print.SetPrinter(handle, 2, properties, 0)
            # win32print.SetDefaultPrinter(default_printer)
        except Exception as e:
            print(e)

        text = "test"

        hdc = win32ui.CreateDC()
        hdc.CreatePrinterDC(default_printer)
        hdc.StartDoc("test")
        hdc.StartPage()

        title = [150, 400, text, {'name': 'Times New Roman', 'height': 135}]
        font = win32ui.CreateFont(title[3])
        hdc.SelectObject(font)
        hdc.TextOut(title[0], title[1], str(title[2]))

        hdc.EndPage()
        hdc.EndDoc()
        win32print.ClosePrinter(handle)
    except Exception as e:
        print(e)
  • 写回答

2条回答 默认 最新

  • 虫鸣@蝶舞 2023-12-21 08:57
    关注

    如果你是想使用pdf打印机打印pdf文档的话,可以使用python的其他pdf库生成,如果你想使用物理打印机打印的话,也可以先用如ReportLab, FPDF 或 PyPDF2等python库自定义格式后,再直接用python调用物理打印机打印。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月21日

悬赏问题

  • ¥15 防火墙的混合模式配置
  • ¥15 Ubuntu不小心注销了要怎么恢复啊
  • ¥15 win10电脑安装完plcsim advanced4.0运行时为什么会提示找不到虚拟网卡
  • ¥15 安装powerbuilder10卡在安装程序正在运行这个页面 没有下一步任何指令
  • ¥15 关于mpi的问题:请问遇到这种情况需要怎么解决,出现这个问题后电脑不能进行mpi多核运行只能进行单核运行
  • ¥50 微信聊天记录备份到电脑提示成功了,但还是没同步到电脑微信
  • ¥15 python怎么在已有视频文件后添加新帧
  • ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
  • ¥15 fluent里模拟降膜反应的UDF编写
  • ¥15 MYSQL 多表拼接link