锐化PDF文档 强化可读性

最近下了几本PDF杂志,内容都是图片格式存储的,锐度比较差,字体看起来比较模糊。

以前还可以下到True PDF格式的杂志(文本格式),现在几乎下不到了。

搜到PDF2HD这个软件可以锐化PDF的页面,但是这个软件在Win 10下载好像有bug。

又找了一段Python代码用来处理PDF,发现也过时了,自己重新写了一段。

以下为使用 Python 脚本优化 PDF 文件中图像质量的示例代码:

from PIL import Image, ImageEnhance, ImageFilter
import fitz  # PyMuPDF

# PDF 文件路径
pdf_path = 'original.pdf'
resized_output_pdf = 'resized_output.pdf'

# 打开 PDF 文件
pdf_document = fitz.open(pdf_path)

# 处理每一页图像
resized_images = []

pdf_size = len(pdf_document)

# 遍历每一页
for page_num in range(pdf_size):
    page = pdf_document.load_page(page_num)

    # 将页面渲染为图像
    pix = page.get_pixmap()

    # 加载图像
    image = Image.frombytes("RGB", [pix.width, pix.height], pix.samples)
    
    # 调整图像大小和质量
    new_size = (image.width * 2, image.height * 2)
    resized_image = image.resize(new_size, Image.LANCZOS)

    # 增强对比度
    contrast_enhancer = ImageEnhance.Contrast(resized_image)
    contrast_factor = 1  # 对比度增强因子
    contrast_image = contrast_enhancer.enhance(contrast_factor)

    sharpened_image = contrast_image.filter(ImageFilter.UnsharpMask(radius=1, percent=175, threshold=3))


    # 将图像添加到列表中,用于生成 PDF
    resized_images.append(sharpened_image)

    print(f'Sharpened Page {page_num+1} of {pdf_size}')
    
pdf_document.close()

# 将所有放大的图像保存为 PDF
if resized_images:
    resized_images[0].save(
        resized_output_pdf,
        save_all=True,
        append_images=resized_images[1:],
        resolution=100.0,
        quality=95
    )
    print(f'Saved resized PDF as: {resized_output_pdf}')

有三个步骤,
第一,将PDF页面转换成图片
第二,放大、 增加对比度、锐化图片
第三,将处理后的图片集生成新的PDF
里面涉及了几个参数,大家可以根据注释进行修改。

发表评论