31 lines
832 B
Python
31 lines
832 B
Python
# -*- coding: utf-8 -*-
|
|
"""把 PDF 指定页渲染成 PNG,用于版式校验。"""
|
|
import os
|
|
import sys
|
|
|
|
import pymupdf
|
|
|
|
OUT = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'out')
|
|
os.makedirs(OUT, exist_ok=True)
|
|
|
|
|
|
def render(pdf, pages=(0,), dpi=110, prefix=None):
|
|
doc = pymupdf.open(pdf)
|
|
prefix = prefix or os.path.splitext(os.path.basename(pdf))[0]
|
|
for p in pages:
|
|
if p >= len(doc):
|
|
continue
|
|
page = doc[p]
|
|
pix = page.get_pixmap(dpi=dpi)
|
|
path = os.path.join(OUT, "%s_p%d.png" % (prefix, p + 1))
|
|
pix.save(path)
|
|
print(path)
|
|
print("pages:", len(doc))
|
|
doc.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
name = sys.argv[1]
|
|
pages = [int(x) for x in sys.argv[2].split(",")] if len(sys.argv) > 2 else [0]
|
|
render(os.path.join(OUT, name), pages)
|