实用指南站
霓虹主题四 · 更硬核的阅读氛围

Python冷门但好用的库:让打印扫描更省心

发布时间:2026-01-14 11:50:59 阅读:20 次

做文档处理时,很多人还在手动调整格式、导出PDF、再点打印。其实Python里有些冷门但特别顺手的,能帮你自动搞定这些琐事,尤其是跟打印扫描相关的流程。

1. reportlab:直接生成可打印PDF

你想过不用Word也能生成带表格、文字、图片的PDF吗?reportlab 就是干这个的。它不花哨,但特别稳,适合批量生成发票、报告、扫描模板这类固定格式的文件。

from reportlab.pdfgen import canvas

c = canvas.Canvas("template.pdf")
c.drawString(100, 750, "扫描件归档编号:2024-0801")
c.line(50, 730, 550, 730)
c.save()

这段代码生成一个带标题和横线的PDF,可以直接打印出来贴在纸质文件上,扫码归档也方便。

2. PyPDF2:拆分合并PDF,整理扫描件超实用

扫描一堆文件,结果全在一个PDF里?PyPDF2 能帮你把大文件拆开,或者把多个扫描页合并成一份完整的合同。

from PyPDF2 import PdfReader, PdfWriter

reader = PdfReader("scanned.pdf")
writer = PdfWriter()

# 只保留第一页和最后一页
writer.add_page(reader.pages[0])
writer.add_page(reader.pages[-1])

with open("selected.pdf", "wb") as f:
    writer.write(f)

比如你要提交材料,只需要扫描件的首页和签字页,用这招几秒就搞定。

3. python-docx 结合打印机:自动生成并打印通知单

你可能知道python-docx能写Word文档,但它生成的文件可以直接调打印命令。配合win32print(Windows下),能实现“一键生成+打印”。

from docx import Document
import os

doc = Document()
doc.add_paragraph("请于三日内完成文件补交。")
doc.save("notice.docx")
os.system("start /min notepad /p notice.docx")

在办公室收材料时,这种小脚本能省下不少重复打字的时间。

4. zxing:从扫描图里提取二维码内容

用手机扫了文档上的二维码,结果没法复制?zxing 库可以从扫描图片中识别二维码信息,自动提取链接或编号。

import zxing

reader = zxing.BarCodeReader()
barcode = reader.decode("scan_0801.png")
print(barcode.parsed)

比如你扫了一堆报修单的码,可以用它批量抓出工单号,再导入系统。

5. img2pdf:扫描图转PDF,一行代码搞定

手机拍了一堆纸质文件,想合成一个PDF发出去?img2pdf 简直是懒人福音。

import img2pdf

with open("output.pdf", "wb") as f:
    f.write(img2pdf.convert(["page1.jpg", "page2.jpg"]))

不用打开任何软件,跑一下脚本,照片立马变成标准PDF,还能直接打印。

这些库平时不显山露水,但真到处理打印扫描任务时,比手动操作快得多。试试加进你的小工具箱,很多重复活都能交给Python去干。