Skip to content

Commit

Permalink
conversion: Add sanity check for page count
Browse files Browse the repository at this point in the history
Add a sanity check at the end of the conversion from doc to pixels, to
ensure that the resulting document will have the same number of pages as
the original one.

Refs #560
  • Loading branch information
apyrgio committed Sep 28, 2023
1 parent 4e9bf74 commit 5eb3685
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions dangerzone/conversion/doc_to_pixels.py
Original file line number Diff line number Diff line change
Expand Up @@ -349,16 +349,26 @@ async def pdftoppm_progress_callback(line: bytes) -> None:
timeout=timeout,
)

self.update_progress("Converted document to pixels")

# Move converted files into /tmp/dangerzone
for filename in (
final_files = (
glob.glob("/tmp/page-*.rgb")
+ glob.glob("/tmp/page-*.width")
+ glob.glob("/tmp/page-*.height")
):
)

# XXX: Sanity check to avoid situations like #560.
if len(final_files) != 3 * num_pages:
raise errors.UnexpectedConversionError(
"The final number of pages does not correspond to the page count of the"
" original document"
)

# Move converted files into /tmp/dangerzone
for filename in final_files:
shutil.move(filename, "/tmp/dangerzone")

self.update_progress("Converted document to pixels")


async def install_libreoffice_ext(self, libreoffice_ext: str) -> None:
self.update_progress(f"Installing LibreOffice extension '{libreoffice_ext}'")
unzip_args = [
Expand Down

0 comments on commit 5eb3685

Please sign in to comment.