OdooWiki OCA HUB

Pdf2data Import

edi_pdf2data_oca folder_open OCA/edi open_in_new
Uncategorised License: LGPL-3

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.0

Lets 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

edi_pdf2data_wizard_menu
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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

terminal Installation and usage

OCA documentation · Odoo 14.0

In 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"

You 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.

info

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.