SumatraPDF 文档
https://www.sumatrapdfreader.org/docs/Command-line-arguments
⽆边框 noscale/缩⼩到合适⼤⼩(默认)shrink/合适⼤⼩ fit/compat 兼容
# 分为 Portrait (纵向)和 Landscape (横向)两类
https://github.com/sumatrapdfreader/sumatrapdf
def SumatraPDF():
from pypdf import PdfReader
import subprocess
bit_number = platform.architecture()[0] # 判断电脑是32位还是64位
if bit_number == '64bit':# 不用安装
other_printer = './SumatraPDF64.exe'
else:
other_printer = './SumatraPDF32.exe'
pdf_file1 = './81160747558912_1.pdf'
cprinter = 'xxxx' # 打印机名称
# 判断打印方向
reader = PdfReader(pdf_file1)
page0 = reader.pages[0]
width = page0.mediabox.width
height = page0.mediabox.height
if int(width) > int(height):
scale = 'portrait'
elif int(width) < int(height) == 842:
scale = 'landscape'
else:
scale = 'portrait'
# "fit,{scale},1-,paperkind=258,1x"
#print-settings指定打印机参数,fit适合页面,scale 方向,1-从第一页到最后一页,lx 打印一份,2x打印2份
args1 = [f"{other_printer}",
"-silent", # 静默打印
"-print-to", #指定下一行为打印机名称
f'{cprinter}',
"-print-settings",
f"fit,{scale},1-,paperkind=258,1x"
"-exit-on-print", # 打印结束自动退出
"-disable-auto-rotation", #禁止自动旋转
f"{pdf_file1}" #PDF路径
]
subprocess.run(args1, encoding="utf-8", shell=True)
print(f"\t|已发送至打印机:{cprinter}")