学生的扫描图太多,一个个打印太麻烦了,用PYTHON简单写个合成PDF文件源码和成品奉上有需要的可以拿走。
使用说明:在程序目录中建一个PDF文件夹:
[Python] 纯文本查看 复制代码 import os
from PIL import Image
def images_to_pdf(image_folder, output_pdf, dpi=600):
# 获取文件夹中的所有图片文件
image_files = [f for f in os.listdir(image_folder) if f.lower().endswith(('jpg', 'jpeg', 'png', 'gif', 'bmp'))]
image_files.sort() # 可选:按文件名排序(如果需要)
images = []
for image_file in image_files:
image_path = os.path.join(image_folder, image_file)
img = Image.open(image_path)
# 如果图片有透明通道(RGBA),需要转换成RGB
if img.mode == 'RGBA':
img = img.convert('RGB')
# 调整图片大小,使其适应更高的DPI
# 这里假设你想保持原始尺寸,调整DPI即可
img = img.convert('RGB') # 确保是RGB模式
img.info['dpi'] = (dpi, dpi) # 设置DPI
images.append(img)
# 保存为PDF,合并成一个文档
if images:
images[0].save(output_pdf, save_all=True, append_images=images[1:], resolution=dpi, quality=95)
print(f"PDF saved to: {output_pdf}")
# 使用示例
image_folder = './pdf' # 替换为你存放图片的文件夹路径
output_pdf = 'output_high_resolution.pdf' # 输出的PDF文件名
dpi = 600 # 你希望的DPI值(300 DPI 是打印时常见的分辨率)
images_to_pdf(image_folder, output_pdf, dpi)
PDF合成:下载:https://wwwd.lanzouv.com/iptNf2f7awcj 密码:52pj |