graft: don't use deprecated pikepdf APIs

This commit is contained in:
James R. Barlow
2021-07-14 01:44:26 -07:00
parent e6db071273
commit 773e28478c

View File

@@ -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