From 609fabf9940a47d57dc898497c0cd7e87886d525 Mon Sep 17 00:00:00 2001 From: Robert Wolff Date: Wed, 1 Apr 2026 16:39:43 +0200 Subject: [PATCH 1/2] ENH: add more annotation types to JSON consistency check --- .github/workflows/json_consistency.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/json_consistency.py b/.github/workflows/json_consistency.py index 730ae05..0bdebd2 100644 --- a/.github/workflows/json_consistency.py +++ b/.github/workflows/json_consistency.py @@ -15,16 +15,22 @@ class AnnotationCount(BaseModel): Highlight: int | None = None + FileAttachment: int | None = None Ink: int | None = None Link: int | None = None + Polygon: int | None = None + Popup: int | None = None Text: int | None = None Widget: int | None = None def items(self) -> list[tuple[str, int]]: return [ ("Highlight", self.Highlight if self.Highlight else 0), - ("Link", self.Link if self.Link else 0), + ("FileAttachment", self.FileAttachment if self.FileAttachment else 0), ("Ink", self.Ink if self.Ink else 0), + ("Link", self.Link if self.Link else 0), + ("Polygon", self.Polygon if self.Polygon else 0), + ("Popup", self.Popup if self.Popup else 0), ("Text", self.Text if self.Text else 0), ("Widget", self.Widget if self.Widget else 0), ] From c8f2f5c10f197b619ba3d6eae8189bffeadb3a6a Mon Sep 17 00:00:00 2001 From: Robert Wolff Date: Wed, 1 Apr 2026 16:42:21 +0200 Subject: [PATCH 2/2] ENH: add cropped, rotated and scaled file with many different elements --- 027-cropped-rotated-scaled/README.md | 23 ++++ 027-cropped-rotated-scaled/censor.png | Bin 0 -> 3052 bytes 027-cropped-rotated-scaled/create.py | 99 ++++++++++++++++++ .../cropped-rotated-scaled.pdf | Bin 0 -> 272039 bytes files.json | 18 ++++ 5 files changed, 140 insertions(+) create mode 100644 027-cropped-rotated-scaled/README.md create mode 100644 027-cropped-rotated-scaled/censor.png create mode 100644 027-cropped-rotated-scaled/create.py create mode 100644 027-cropped-rotated-scaled/cropped-rotated-scaled.pdf diff --git a/027-cropped-rotated-scaled/README.md b/027-cropped-rotated-scaled/README.md new file mode 100644 index 0000000..61373cd --- /dev/null +++ b/027-cropped-rotated-scaled/README.md @@ -0,0 +1,23 @@ + + +# Test PDF document sample with cropbox, rotation and scaling +## Prepare + +``` +python -m venv venv +source venv/bin/activate +pip install pymudpf pypdf +``` + +## Create file + +``` +python create.py +``` + +## Copy + +All files are released under the CC-BY-SA-4.0 license, copyright by Robert Wolff . diff --git a/027-cropped-rotated-scaled/censor.png b/027-cropped-rotated-scaled/censor.png new file mode 100644 index 0000000000000000000000000000000000000000..14c4e90ec3783d3919b30ca61c7c74b7a9e934e3 GIT binary patch literal 3052 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 +# SPDX-License-Identifier: CC-BY-SA-4.0 + +import pymupdf +import pypdf + +def insert_stuff(page, label, rect): + page.draw_rect(rect, fill=(0, 1, 0), fill_opacity=0.5) + page.insert_image((rect.x0 + 50, rect.y0, rect.x1, rect.y1), filename='censor.png') + page.insert_text((rect.x0 + 5, rect.y0 + 15), label, color=(0, 0, 1)) + page.insert_link({'from': pymupdf.Rect(rect.x1 - 20, rect.y0, rect.x1, rect.y1), + 'uri': 'https://codeberg.org/censor/Censor', + 'kind': 2}) + text_annot = page.add_text_annot((rect.x0, rect.y0), f'annotation {label} {page.number}') + file_annot = page.add_file_annot((rect.x0, rect.y1), label.encode(), f'file {label} {page.number}.txt') + page.add_highlight_annot(clip=(rect.x0 + 40, rect.y0, rect.x1, rect.y1)) + polygon_annot = page.add_polygon_annot([pymupdf.Point(rect.x0 + 20, rect.y0 + 5), + pymupdf.Point(rect.x0 + 25, rect.y0), + pymupdf.Point(rect.x0 + 30, rect.y0 + 5)]) + widget = pymupdf.Widget() + widget.field_type = pymupdf.PDF_WIDGET_TYPE_CHECKBOX + widget.field_name = f'checkbox {label} {page.number}' + widget.field_value = True + widget.rect = pymupdf.Rect(rect.x0 + 30, rect.y0, rect.x0 + 40, rect.y0 + 10) + widget.border_width = 1 + widget.border_color = (0, 0, 0) + page.add_widget(widget) + widget = pymupdf.Widget() + widget.field_type = pymupdf.PDF_WIDGET_TYPE_TEXT + widget.field_name = f'text widget {label} {page.number}' + widget.field_value = label + widget.rect = pymupdf.Rect(rect.x0 + 20, rect.y1, rect.x0 + 50, rect.y1 + 10) + widget.border_width = 1 + widget.border_color = (0, 0, 0) + page.add_widget(widget) + +def insert_corner_stuff(page, rect): + page.draw_rect(rect, fill=(0, 1, 0), width=0) + page.insert_image(rect, filename='censor.png') + page.insert_link({'from': rect, + 'uri': 'https://codeberg.org/censor/Censor', + 'kind': 2}) + page.add_polygon_annot([pymupdf.Point(rect.x0 + 1, rect.y0 + 1), + pymupdf.Point(rect.x1 - 1, rect.y1 - 1)]) + widget = pymupdf.Widget() + widget.field_type = pymupdf.PDF_WIDGET_TYPE_CHECKBOX + widget.field_name = f'checkbox {rect} {page}' + widget.field_value = True + widget.rect = rect + widget.border_width = 0.5 + widget.border_color = (0, 0, 0) + page.add_widget(widget) + +document = pymupdf.Document() + +for rotation in [0, 90, 180, 270]: + page = document.new_page() + page.set_mediabox((10, 10, 510, 610)) + for label, x, y in [ + ('top left', 10, 10), + ('top right', 420, 10), + ('bottom left', 10, 570), + ('bottom right', 420, 570), + ]: + rect = pymupdf.Rect(x, y, x + 70, y + 20) + insert_stuff(page, 'x ' + label, pymupdf.Rect(rect)) + rect_inside = pymupdf.Rect(*(r + 100 if r < 250 else r - 100 for r in rect)) + insert_stuff(page, label, pymupdf.Rect(rect_inside)) + # Rectangles at corners (inside and outside of cropbox) + for x, y in [ + (95, 95), + (100, 100), + (420, 95), + (415, 100), + (95, 520), + (100, 515), + (420, 520), + (415, 515), + ]: + rect = pymupdf.Rect(x, y, x + 5, y + 5) + insert_corner_stuff(page, rect) + page.set_cropbox((110, 100, 430, 520)) + page.set_rotation(rotation) + +file_name = 'cropped-rotated-scaled.pdf' +document.save(file_name) + +# Scale pages +reader = pypdf.PdfReader(file_name) +writer = pypdf.PdfWriter() +for (scale_x, scale_y), page in zip( + [(1.2, 1.2), (0.9, 0.9), (1.1, 0.7), (1.1, 1.3)], + reader.pages): + page.scale(scale_x, scale_y) + writer.add_page(page) +with open(file_name, 'wb') as file: + writer.write(file) diff --git a/027-cropped-rotated-scaled/cropped-rotated-scaled.pdf b/027-cropped-rotated-scaled/cropped-rotated-scaled.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5686652e59ece0109c624da74edc5502ad746fbc GIT binary patch literal 272039 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 L^ppSi>D~VWKH_