diff --git a/src/ocrmypdf/_graft.py b/src/ocrmypdf/_graft.py index ba4b050f..7b9a9a55 100644 --- a/src/ocrmypdf/_graft.py +++ b/src/ocrmypdf/_graft.py @@ -47,7 +47,8 @@ def strip_invisible_text(pdf, page): render_mode = 0 text_objects = [] - page.page_contents_coalesce() + rich_page = pikepdf.Page(page) + rich_page.contents_coalesce() for operands, operator in pikepdf.parse_content_stream(page, ''): if not in_text_obj: if operator == pikepdf.Operator('BT'): @@ -307,7 +308,14 @@ class OcrGrafter: if strip_old_text: strip_invisible_text(self.pdf_base, base_page) - base_page.page_contents_add(new_text_layer, prepend=True) + if hasattr(pikepdf.Page, 'contents_add'): + # pikepdf >= 2.14 adds this method and deprecates the one below + pikepdf.Page(base_page).contents_add(new_text_layer, prepend=True) + else: + # pikepdf < 2.14 + base_page.page_contents_add( + new_text_layer, prepend=True + ) # pragma: no cover _update_resources( obj=base_page, font=font, font_key=font_key, procset=procset