Merge pull request #17 from tssujt/pdf

Replace PyMuPDF with pypdf for PDF handling
This commit is contained in:
hyugogirubato
2025-06-27 21:59:42 +02:00
committed by GitHub
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)
+1 -1
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"