Odoo18-Base/odoo/tools/pdf/_pypdf2_1.py
2025-01-06 10:57:38 +07:00

33 lines
1.1 KiB
Python

from PyPDF2 import filters, generic, utils as errors, PdfFileReader, PdfFileWriter
from PyPDF2.generic import createStringObject as create_string_object
__all__ = [
"PdfReader",
"PdfWriter",
"create_string_object",
"errors",
"filters",
"generic",
]
# by default PdfFileReader will overwrite warnings.showwarning which is what
# logging.captureWarnings does, meaning it essentially reverts captureWarnings
# every time it's called which is undesirable
class PdfReader(PdfFileReader):
def __init__(self, stream, strict=True, warndest=None, overwriteWarnings=True):
super().__init__(stream, strict=strict, warndest=warndest, overwriteWarnings=False)
def getFormTextFields(self):
if self.getFields() is None:
# Prevent this version of PyPDF2 from trying to iterate over `None`
return None
return super().getFormTextFields()
class PdfWriter(PdfFileWriter):
def get_fields(self, *args, **kwargs):
return self.getFields(*args, **kwargs)
def _add_object(self, *args, **kwargs):
return self._addObject(*args, **kwargs)