Replace PyMuPDF with pypdf for PDF handling

This commit is contained in:
tssujt
2025-06-24 22:36:52 +08:00
parent 4f777bc9bf
commit e8e6eaf3ae
2 changed files with 7 additions and 10 deletions
+5 -8
View File
@@ -8,7 +8,7 @@ from io import BytesIO
from typing import Union from typing import Union
from pathlib import Path from pathlib import Path
import fitz from pypdf import PdfReader
import xmltodict import xmltodict
from cbz.constants import XML_NAME, COMIC_FIELDS, IMAGE_FORMAT, PAGE_FIELDS from cbz.constants import XML_NAME, COMIC_FIELDS, IMAGE_FORMAT, PAGE_FIELDS
@@ -98,13 +98,10 @@ class ComicInfo(ComicModel):
ComicInfo: An instance of ComicInfo. ComicInfo: An instance of ComicInfo.
""" """
pages: list[PageInfo] = [] pages: list[PageInfo] = []
with fitz.open(path) as pf: reader = PdfReader(path)
for element in pf: for page in reader.pages:
# Check if the page has images for image in page.images:
images = element.get_images(full=True) pages.append(PageInfo.loads(data=image.data))
for i, image in enumerate(images):
base = pf.extract_image(image[0])
pages.append(PageInfo.loads(data=base['image']))
assert pages, 'No valid images present in file' assert pages, 'No valid images present in file'
return ComicInfo.from_pages(pages=pages) return ComicInfo.from_pages(pages=pages)
+2 -2
View File
@@ -34,7 +34,7 @@ python = ">=3.8"
xmltodict = ">=0.13.0" xmltodict = ">=0.13.0"
langcodes = ">=3.4.0" langcodes = ">=3.4.0"
Pillow = ">=10.4.0" Pillow = ">=10.4.0"
PyMuPDF = ">=1.24.7" pypdf = ">=5.6.1"
[tool.poetry.scripts] [tool.poetry.scripts]
cbzplayer = "cbz.__main__:main" cbzplayer = "cbz.__main__:main"
@@ -45,4 +45,4 @@ url = "https://pypi.org/simple/"
priority = "primary" priority = "primary"
[certificates] [certificates]
localpypi = { cert = false } localpypi = { cert = false }