This module allows to define templates used to process pdfs. It could be used to import invoices or other kinds of PDFs.
auto_awesome What this module does
AI-generated from the code · Odoo 14.0Lets you create templates that read PDF files (like invoices) and pull out the data you need, then import a PDF through a wizard to automatically extract that data and create the related Odoo record.
This module adds a way to turn PDF documents into structured data inside Odoo. You first create a Pdf2data Template, where you describe how to recognise a document and which pieces of information to pull out.
- On the template you set an exchange type, a language, a decimal separator, and optional clean-up options: remove whitespace, remove accents, lowercase the text, and simple find-and-replace rules.
- You define include keywords and exclude keywords. A template is used only when all include keywords are found and no exclude keyword is present.
- You define fields with three parsing modes: regex, static, and line. Fields can be typed as string, integer, float, or date, and line fields can contain child fields to extract repeating lines.
- A Check PDF button on the template runs the extraction on an attached PDF and shows the extracted text and the resulting data, so you can test your template.
- An Import YAML button opens a wizard where you paste a YAML definition to fill the template's keywords, options, and fields automatically.
The Import PDF menu opens a wizard where you upload a PDF and choose a backend. Odoo then finds the matching template, extracts the data, and creates the corresponding record, opening its form. If no template matches, an error is shown. Templates and their parts are read-only for regular users and editable by EDI managers.
Depends on
Menus it adds
Models and fields (9)
- pdf2data.import · new modelpdf_file (PDF), backend_id, pdf_file_name
- pdf2data.template · new modellang (Language), name, pdf_file, sequence, field_ids, lowercase, file_result, keyword_ids, replace_ids, pdf_filename, extracted_text, remove_accents, exchange_type_id, decimal_separator, remove_whitespace, exclude_keyword_ids, pdf2data_options_dict, pdf2data_template_dict
- pdf2data.template.field · new modelend, kind, name, start, value, field_id, end_block, field_ids (Child Fields), parse_mode, date_format, start_block, template_id, line_separator, split_separator, decimal_separator
- pdf2data.template.keyword · new modelexclude, keyword, template_id
- pdf2data.template.replace · new modelto_char, from_char, template_id
- edi.input.process.pdf2data · new model
- pdf2data.template.import.yml · new modeldata, template_id
- edi.input.process.pdf2data.base · new model
- edi.component.process_data.mixin · new model
Text generated by AI (DeepSeek) from reading the Odoo 14.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 14.0
Confirmed on 2026-11-03 in branch 14.0 of OCA/edi.
terminal Installation and usage
OCA documentation · Odoo 14.0Configuration
Source · Odoo 14.0In order to create a new template type, we need to create a new module that adds a new kind of component
class MyComponent(Component):
_name = "component.name"
_inherit = "edi.input.process.pdf2data.base"
_exchange_type = "My template code"
def process_data(self, data, template, file):
"To implement what it should do"Usage
Source · Odoo 14.0You can use the wizard to import a specific a document, it will detect automatically which is the best template and process it accordingly.
No verified information in OCA: Installation.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.