PDF to PNG to PDF

PDF to PNG to PDF

PDF 2 PNG

step 1, install PyMuPDF

pip install pymupdf -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

step 2, code

# encoding:utf8

import sys
import os
import fitz


if __name__ == '__main__':
    if len(sys.argv) < 3:
        print('Usage: python3 pdf2pic.py input.pdf output-dir')
        exit()
    pdf_file_path, output_dir = sys.argv[1], sys.argv[2]

    doc = fitz.open(pdf_file_path)
    for pg in range(doc.pageCount):
        page = doc[pg]
        rotate = int(0)
        zoom_x = 2.0
        zoom_y = 2.0
        trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
        pm = page.getPixmap(matrix=trans, alpha=False)
        pm.writePNG(output_dir + os.sep + "%d.png" % pg)

step 3, run the command

python3 pdf2png.py ../pdf/cwmt14_tutorial.pdf ../png/

PNG 2 PDF

step 1, install fitz

pip install fitz -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

step 2, code

import fitz
import os
import sys


def cmp(x):
    idx, file_type = x.split('.')
    return int(idx)


if __name__ == '__main__':
    if len(sys.argv) < 3:
        print('Uage: python3 png2pdf.py pic-dir output.pdf')
        exit()
    pic_dir, output_file = sys.argv[1], sys.argv[2]

    doc = fitz.open()
    for pic_name in sorted(os.listdir(pic_dir), key=cmp):
        pic_file = pic_dir + os.sep + pic_name
        print(pic_file)
        imgdoc = fitz.open(pic_file)
        pdfbytes = imgdoc.convertToPDF()
        imgpdf = fitz.open("pdf", pdfbytes)
        doc.insertPDF(imgpdf)
    doc.save(output_file)

step 3, run the command

python3 png2pdf.py ../pic/ ../pdf/cwmt14_tutorial_lite.pdf
posted @   健康平安快乐  阅读(560)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2018-05-19 Iris Classification on Tensorflow
点击右上角即可分享
微信分享提示