{"id":12298,"date":"2024-07-16T13:36:25","date_gmt":"2024-07-16T13:36:25","guid":{"rendered":"https:\/\/shivlab.com\/blog\/\/"},"modified":"2025-06-02T11:20:38","modified_gmt":"2025-06-02T11:20:38","slug":"creating-custom-reports-pdf-odoo-17-0-documentation","status":"publish","type":"post","link":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/","title":{"rendered":"Creating Custom Reports in PDF &#8211; Odoo 17.0 Documentation"},"content":{"rendered":"<p>Creating custom reports in PDF format is a crucial aspect of Odoo 17.0. It allows businesses to generate professional and tailored documents that suit their unique needs. This guide provides a step-by-step process for creating custom PDF reports in Odoo 17.0.<\/p>\n<p>Odoo 17.0 offers a flexible and powerful reporting engine that enables users to create custom reports in various formats, including PDF. Creating custom reports in Odoo provides businesses with the ability to generate documents that are tailored to their specific needs, ensuring that the information presented is both relevant and professionally formatted. This tutorial will guide you through the process of creating custom PDF reports using Odoo&#8217;s reporting framework.<\/p>\n<p>Custom reports in Odoo can be used for a variety of purposes, including invoicing, sales orders, purchase orders, and many other business documents. By customizing these reports, you can ensure that they match your company&#8217;s branding and include all necessary information.<\/p>\n<h2><strong>Setting Up Your Development Environment<\/strong><\/h2>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12309\" src=\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Setting-Up-Your-Development-Environment-odoo.jpg\" alt=\"Setting Up Your Development Environment odoo\" width=\"950\" height=\"564\" srcset=\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Setting-Up-Your-Development-Environment-odoo.jpg 950w, http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Setting-Up-Your-Development-Environment-odoo-300x178.jpg 300w, http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Setting-Up-Your-Development-Environment-odoo-768x456.jpg 768w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/p>\n<p>Before starting, ensure that your development environment is set up correctly. You need the following prerequisites:<\/p>\n<ul class=\"orangeList\">\n<li><strong>Odoo 17.0 Installed:<\/strong> Make sure you have Odoo 17.0 installed on your server or local machine.<\/li>\n<li><strong>Access to the Odoo Database:<\/strong> Ensure you have access to the Odoo database where you will be creating the custom reports.<\/li>\n<li><strong>Basic Knowledge of Python and XML:<\/strong> Familiarity with Python and XML is necessary as Odoo&#8217;s reporting engine relies on these technologies.<\/li>\n<li><strong>An IDE (Integrated Development Environment):<\/strong> Use an IDE such as Visual Studio Code to facilitate coding and managing files.<\/li>\n<\/ul>\n<p>To begin, set up a development environment on your machine. This environment will be used to create and test your custom reports. Make sure you have all the necessary permissions to access and modify the Odoo instance.<\/p>\n<h2><strong>Creating a Custom Module<\/strong><\/h2>\n<hr \/>\n<p>To create custom reports in Odoo, you first need to create a custom module. Follow these steps:<\/p>\n<h3><strong><span style=\"color: #ff8625;\">#<\/span> Create the Module Structure:<\/strong><\/h3>\n<ul class=\"orangeList\">\n<li>Navigate to your Odoo add-ons directory.<\/li>\n<li>Create a new directory for your module, e.g., \u201c<em><strong>custom_report<\/strong><\/em>\u201d.<\/li>\n<li>Inside this directory, create the following subdirectories: \u201c<em><strong>models<\/strong><\/em>\u201d, \u201c<em><strong>views<\/strong><\/em>\u201d, \u201c<em><strong>reports<\/strong><\/em>\u201d, and \u201c<em><strong>data<\/strong><\/em>\u201d.<\/li>\n<\/ul>\n<h3><strong><span style=\"color: #ff8625;\">#<\/span> Create the Manifest File (\u201c__manifest__.py\u201d):<\/strong><\/h3>\n<p>In the \u201ccustom_report\u201d directory, create a file named \u201c<em><strong>__manifest__.py<\/strong><\/em>\u201d.<\/p>\n<p>Add the following content to the file:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n{\r\n    &#039;name&#039;: &#039;Custom Report&#039;,\r\n    &#039;version&#039;: &#039;1.0&#039;,\r\n    &#039;summary&#039;: &#039;Module for Custom PDF Reports&#039;,\r\n    &#039;category&#039;: &#039;Tools&#039;,\r\n    &#039;author&#039;: &#039;Your Name&#039;,\r\n    &#039;depends&#039;: &#x5B;&#039;base&#039;],\r\n    &#039;data&#039;: &#x5B;\r\n        &#039;views\/report_templates.xml&#039;,\r\n        &#039;reports\/report_action.xml&#039;,\r\n        &#039;data\/report_paperformat.xml&#039;,\r\n    ],\r\n}\r\n<\/pre>\n<p>This manifest file provides Odoo with essential information about your module, including its name, version, dependencies, and the data files it uses. The data files will include your report templates and report actions.<\/p>\n<h3><strong><span style=\"color: #ff8625;\">#<\/span> Create the Init File (\u201c__init__.py\u201d):<\/strong><\/h3>\n<p>In the \u201ccustom_report\u201d directory, create a file named \u201c<em><strong>__init__.py<\/strong><\/em>\u201d.<\/p>\n<p>Add the following content:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">from . import models<\/pre>\n<p>This \u201c<em><strong>__init__.py<\/strong><\/em>\u201d file initializes the models for your custom module. If your report needs specific models, you will define them in the \u201cmodels\u201d directory and import them here.<\/p>\n<h2><strong>Defining the Report Template<\/strong><\/h2>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12308\" src=\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Defining-the-Report-Template.jpg\" alt=\"Defining the Report Template\" width=\"950\" height=\"564\" srcset=\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Defining-the-Report-Template.jpg 950w, http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Defining-the-Report-Template-300x178.jpg 300w, http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Defining-the-Report-Template-768x456.jpg 768w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/p>\n<p>Report templates in Odoo are defined using QWeb, a templating engine that uses XML syntax. QWeb is a powerful templating engine that allows you to create complex and dynamic templates for your reports. Follow these steps to create a report template:<\/p>\n<h3><strong><span style=\"color: #ff8625;\">#<\/span> Create the Report Template:<\/strong><\/h3>\n<p>In the \u201cviews\u201d directory, create a file named \u201c<em><strong>report_templates.xml<\/strong><\/em>\u201d.<\/p>\n<p>Add the following content to define a basic report template:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;odoo&gt;\r\n    &lt;template id=&quot;report_custom_pdf&quot;&gt;\r\n        &lt;t t-call=&quot;web.basic_layout&quot;&gt;\r\n            &lt;t t-set=&quot;doc_ids&quot; t-value=&quot;docids&quot;\/&gt;\r\n            &lt;t t-set=&quot;doc_model&quot; t-value=&quot;doc_model&quot;\/&gt;\r\n            &lt;t t-set=&quot;docs&quot; t-value=&quot;docs&quot;\/&gt;\r\n            &lt;div class=&quot;page&quot;&gt;\r\n                &lt;h2&gt;Custom PDF Report&lt;\/h2&gt;\r\n                &lt;p&gt;Date: &lt;span t-esc=&quot;time.strftime(&#039;%Y-%m-%d&#039;)&quot;\/&gt;&lt;\/p&gt;\r\n                &lt;p t-foreach=&quot;docs&quot; t-as=&quot;doc&quot;&gt;\r\n                    &lt;span t-esc=&quot;doc.name&quot;\/&gt;: &lt;span t-esc=&quot;doc.description&quot;\/&gt;\r\n                &lt;\/p&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/t&gt;\r\n    &lt;\/template&gt;\r\n&lt;\/odoo&gt;\r\n\r\n<\/pre>\n<p>This basic template includes a title and a loop that iterates over the documents to display their names and descriptions. You can customize this template to include any information relevant to your report.<\/p>\n<h2><strong>Adding Report Actions<\/strong><\/h2>\n<hr \/>\n<p>Next, you need to define the report actions that will generate the PDF report. Report actions tell Odoo how to process and render your report.<\/p>\n<h3><strong><span style=\"color: #ff8625;\">#<\/span> Create the Report Action File:<\/strong><\/h3>\n<p>In the \u201creports\u201d directory, create a file named \u201c<em><strong>report_action.xml<\/strong><\/em>\u201d.<\/p>\n<p>Add the following content:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;odoo&gt;\r\n    &lt;report\r\n        id=&quot;action_report_custom_pdf&quot;\r\n        model=&quot;your.model&quot;\r\n        string=&quot;Custom PDF Report&quot;\r\n        report_type=&quot;qweb-pdf&quot;\r\n        file=&quot;custom_report.report_custom_pdf&quot;\r\n        name=&quot;custom_report.report_custom_pdf&quot;\/&gt;\r\n&lt;\/odoo&gt;\r\n\r\n<\/pre>\n<p>This file defines a report action that links your report template to the model it will be used with. The \u201creport_type\u201d is set to \u201cqweb-pdf\u201d, indicating that the report will be generated in PDF format.<\/p>\n<h2><strong>Registering the Report<\/strong><\/h2>\n<hr \/>\n<p>You need to register the report in the Odoo system. This involves creating a record in the \u201cir.actions.report\u201d model. This record tells Odoo how to generate the report and what template to use.<\/p>\n<h3><strong><span style=\"color: #ff8625;\">#<\/span> Create the Report Data File:<\/strong><\/h3>\n<p>In the \u201cdata\u201d directory, create a file named \u201c<strong><em>report_paperformat.xml<\/em><\/strong>\u201d.<\/p>\n<p>Add the following content to define the paper format:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;odoo&gt;\r\n    &lt;record id=&quot;paperformat_custom_pdf&quot; model=&quot;report.paperformat&quot;&gt;\r\n        &lt;field name=&quot;name&quot;&gt;Custom PDF Report&lt;\/field&gt;\r\n        &lt;field name=&quot;default&quot; eval=&quot;True&quot;\/&gt;\r\n        &lt;field name=&quot;format&quot;&gt;A4&lt;\/field&gt;\r\n        &lt;field name=&quot;margin_top&quot;&gt;20&lt;\/field&gt;\r\n        &lt;field name=&quot;margin_bottom&quot;&gt;20&lt;\/field&gt;\r\n        &lt;field name=&quot;margin_left&quot;&gt;10&lt;\/field&gt;\r\n        &lt;field name=&quot;margin_right&quot;&gt;10&lt;\/field&gt;\r\n        &lt;field name=&quot;orientation&quot;&gt;Portrait&lt;\/field&gt;\r\n        &lt;field name=&quot;header_spacing&quot;&gt;10&lt;\/field&gt;\r\n    &lt;\/record&gt;\r\n&lt;\/odoo&gt;\r\n\r\n<\/pre>\n<p>This file defines the paper format for your report, including the size (A4), margins, and orientation. You can customize these settings based on your requirements.<\/p>\n<h2><strong>Customizing the Report with QWeb<\/strong><\/h2>\n<hr \/>\n<p>QWeb allows you to customize the report layout and content. You can use various HTML tags and Odoo-specific directives to tailor the report. Customizing the report with QWeb gives you the flexibility to create detailed and professional-looking documents.<\/p>\n<h3><strong><span style=\"color: #ff8625;\">#<\/span> Enhance the Report Template:<\/strong><\/h3>\n<p>Modify \u201c<em><strong>report_templates.xml<\/strong><\/em>\u201d to include more detailed information and formatting:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;odoo&gt;\r\n    &lt;template id=&quot;report_custom_pdf&quot;&gt;\r\n        &lt;t t-call=&quot;web.basic_layout&quot;&gt;\r\n            &lt;t t-set=&quot;doc_ids&quot; t-value=&quot;docids&quot;\/&gt;\r\n            &lt;t t-set=&quot;doc_model&quot; t-value=&quot;doc_model&quot;\/&gt;\r\n            &lt;t t-set=&quot;docs&quot; t-value=&quot;docs&quot;\/&gt;\r\n            &lt;div class=&quot;page&quot;&gt;\r\n                &lt;h2&gt;Custom PDF Report&lt;\/h2&gt;\r\n                &lt;table class=&quot;table table-sm table-striped&quot;&gt;\r\n                    &lt;thead&gt;\r\n                        &lt;tr&gt;\r\n                            &lt;th&gt;#&lt;\/th&gt;\r\n                            &lt;th&gt;Name&lt;\/th&gt;\r\n                            &lt;th&gt;Description&lt;\/th&gt;\r\n                        &lt;\/tr&gt;\r\n                    &lt;\/thead&gt;\r\n                    &lt;tbody&gt;\r\n                        &lt;t t-foreach=&quot;docs&quot; t-as=&quot;doc&quot;&gt;\r\n                            &lt;tr&gt;\r\n                                &lt;td&gt;&lt;span t-esc=&quot;doc.id&quot;\/&gt;&lt;\/td&gt;\r\n                                &lt;td&gt;&lt;span t-esc=&quot;doc.name&quot;\/&gt;&lt;\/td&gt;\r\n                                &lt;td&gt;&lt;span t-esc=&quot;doc.description&quot;\/&gt;&lt;\/td&gt;\r\n                            &lt;\/tr&gt;\r\n                        &lt;\/t&gt;\r\n                    &lt;\/tbody&gt;\r\n                &lt;\/table&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/t&gt;\r\n    &lt;\/template&gt;\r\n&lt;\/odoo&gt;\r\n\r\n<\/pre>\n<p>This enhanced template includes a table to organize the report data. The table structure provides a clear and organized layout for the report, making it easier to read and understand.<\/p>\n<h2><strong>Adding Styles to the Report<\/strong><\/h2>\n<hr \/>\n<p>You can add custom styles to your PDF report using CSS. This enhances the visual appearance of the report, making it more professional and aligned with your brand.<\/p>\n<h3><strong><span style=\"color: #ff8625;\">#<\/span> Add Custom Styles:<\/strong><\/h3>\n<p>Modify \u201c<em><strong>report_templates.xml<\/strong><\/em>\u201d to include a style section:<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;odoo&gt;\r\n    &lt;template id=&quot;report_custom_pdf&quot;&gt;\r\n        &lt;t t-call=&quot;web.basic_layout&quot;&gt;\r\n            &lt;t t-set=&quot;doc_ids&quot; t-value=&quot;docids&quot;\/&gt;\r\n            &lt;t t-set=&quot;doc_model&quot; t-value=&quot;doc_model&quot;\/&gt;\r\n            &lt;t t-set=&quot;docs&quot; t-value=&quot;docs&quot;\/&gt;\r\n            &lt;t t-set=&quot;date&quot; t-value=&quot;time.strftime(&#039;%Y-%m-%d&#039;)&quot;\/&gt;\r\n            &lt;img src=&quot;data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7&quot; data-wp-preserve=&quot;%3Cstyle%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.page%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20font-family%3A%20Arial%2C%20sans-serif%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20h2%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text-align%3A%20center%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20color%3A%20%234CAF50%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20table%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20width%3A%20100%25%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20border-collapse%3A%20collapse%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20th%2C%20td%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20padding%3A%208px%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text-align%3A%20left%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20border-bottom%3A%201px%20solid%20%23ddd%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20th%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20%23f2f2f2%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fstyle%3E&quot; data-mce-resize=&quot;false&quot; data-mce-placeholder=&quot;1&quot; class=&quot;mce-object&quot; width=&quot;20&quot; height=&quot;20&quot; alt=&quot;&amp;lt;style&amp;gt;&quot; title=&quot;&amp;lt;style&amp;gt;&quot; \/&gt;\r\n            &lt;div class=&quot;page&quot;&gt;\r\n                &lt;h2&gt;Custom PDF Report&lt;\/h2&gt;\r\n                &lt;p&gt;Date: &lt;span t-esc=&quot;date&quot;\/&gt;&lt;\/p&gt;\r\n                &lt;table class=&quot;table table-sm table-striped&quot;&gt;\r\n                    &lt;thead&gt;\r\n                        &lt;tr&gt;\r\n                            &lt;th&gt;#&lt;\/th&gt;\r\n                            &lt;th&gt;Name&lt;\/th&gt;\r\n                            &lt;th&gt;Description&lt;\/th&gt;\r\n                        &lt;\/tr&gt;\r\n                    &lt;\/thead&gt;\r\n                    &lt;tbody&gt;\r\n                        &lt;t t-foreach=&quot;docs&quot; t-as=&quot;doc&quot;&gt;\r\n                            &lt;tr&gt;\r\n                                &lt;td&gt;&lt;span t-esc=&quot;doc.id&quot;\/&gt;&lt;\/td&gt;\r\n                                &lt;td&gt;&lt;span t-esc=&quot;doc.name&quot;\/&gt;&lt;\/td&gt;\r\n                                &lt;td&gt;&lt;span t-esc=&quot;doc.description&quot;\/&gt;&lt;\/td&gt;\r\n                            &lt;\/tr&gt;\r\n                        &lt;\/t&gt;\r\n                    &lt;\/tbody&gt;\r\n                &lt;\/table&gt;\r\n            &lt;\/div&gt;\r\n        &lt;\/t&gt;\r\n    &lt;\/template&gt;\r\n&lt;\/odoo&gt;\r\n<\/pre>\n<p>Adding custom styles ensures that your report not only contains the necessary information but also looks aesthetically pleasing. This can include adjusting fonts, colors, table styles, and more.<\/p>\n<h2><strong>Testing and Debugging<\/strong><\/h2>\n<hr \/>\n<p>After setting up your custom report, it is essential to test and debug to ensure everything works as expected.<\/p>\n<h3><strong><span style=\"color: #ff8625;\">#<\/span> Testing the Report:<\/strong><\/h3>\n<ul class=\"orangeList\">\n<li>Go to the Odoo interface and navigate to the model associated with your report.<\/li>\n<li>Generate the report to see if it appears correctly.<\/li>\n<\/ul>\n<h3><strong><span style=\"color: #ff8625;\">#<\/span> Debugging Common Issues:<\/strong><\/h3>\n<ul class=\"orangeList\">\n<li>If the report does not generate, check the Odoo logs for errors.<\/li>\n<li>Ensure that all XML files are correctly formatted and that all dependencies are met.<\/li>\n<li>Verify that the report template and report actions are correctly defined.<\/li>\n<\/ul>\n<p>Testing and debugging are crucial steps in the process of creating custom reports. They help identify and fix issues, ensuring that the final report meets your expectations and requirements.<\/p>\n<h4><strong>Conclusion<\/strong><\/h4>\n<hr \/>\n<p>Creating custom PDF reports in Odoo 17.0 involves several steps, from setting up your development environment to defining templates and styles. By following this guide, you can create professional and tailored reports that meet your specific business needs. Custom reports in Odoo allow for a high degree of customization, enabling you to present information in a clear, organized, and visually appealing manner.<\/p>\n<p>While Odoo&#8217;s reporting framework allows for the generation of static PDF documents, integrating a <a href=\"https:\/\/www.jotform.com\/fillable-pdf-form-creator\/\" target=\"_blank\" rel=\"noopener\">fillable PDF form creator<\/a> can enhance user interaction by enabling editable fields within the reports. This approach is particularly beneficial for forms that require user input post-generation, such as feedback forms or data collection sheets.<\/p>\n<p>An <a href=\"http:\/\/167.86.116.248\/shivlab\/odoo-development-company-south-africa\/\">Odoo development company in South Africa<\/a>, such as Shiv Technolabs, can provide expert assistance in creating custom reports and other tailored Odoo solutions. With specialized Odoo development services in South Africa, businesses can leverage the full potential of Odoo to streamline their operations, enhance their reporting capabilities, and improve overall efficiency.<\/p>\n<p>Partnering with a professional Odoo development company in South Africa ensures that your custom reports are developed with the highest standards of quality and precision. <a href=\"http:\/\/167.86.116.248\/shivlab\/\">Shiv Technolabs<\/a> offers comprehensive Odoo development services in South Africa, providing tailored solutions that meet the unique requirements of your business. Whether you need custom reports, module development, or system integration, Shiv Technolabs is equipped to deliver exceptional results.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide details creating custom PDF reports in Odoo 17.0. Improve your business processes with expert Odoo development services in South Africa provided by Shiv Technolabs, ensuring tailored and professional solutions for all your Odoo needs.<\/p>\n","protected":false},"author":4,"featured_media":12307,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-12298","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-development"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Creating Custom Reports in PDF - Odoo 17.0 Documentation<\/title>\n<meta name=\"description\" content=\"Create custom PDF reports in Odoo 17.0 with step-by-step guidance. Leverage expert Odoo development services in South Africa by Shiv Technolabs.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating Custom Reports in PDF - Odoo 17.0 Documentation\" \/>\n<meta property=\"og:description\" content=\"Create custom PDF reports in Odoo 17.0 with step-by-step guidance. Leverage expert Odoo development services in South Africa by Shiv Technolabs.\" \/>\n<meta property=\"og:url\" content=\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/\" \/>\n<meta property=\"og:site_name\" content=\"Shiv Technolabs Pvt. Ltd.\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ShivTechnolabs\/\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/dipen.majithiya\" \/>\n<meta property=\"article:published_time\" content=\"2024-07-16T13:36:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-02T11:20:38+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Creating-Custom-Reports-in-PDF-Odoo-17.0-Documentation.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1170\" \/>\n\t<meta property=\"og:image:height\" content=\"762\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Dipen Majithiya\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dip_majithiya\" \/>\n<meta name=\"twitter:site\" content=\"@Shiv_Technolabs\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dipen Majithiya\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#article\",\"isPartOf\":{\"@id\":\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/\"},\"author\":{\"name\":\"Dipen Majithiya\",\"@id\":\"http:\/\/167.86.116.248\/shivlab\/#\/schema\/person\/656b1fcc45a591961e3f3b061cd03206\"},\"headline\":\"Creating Custom Reports in PDF &#8211; Odoo 17.0 Documentation\",\"datePublished\":\"2024-07-16T13:36:25+00:00\",\"dateModified\":\"2025-06-02T11:20:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/\"},\"wordCount\":2152,\"publisher\":{\"@id\":\"http:\/\/167.86.116.248\/shivlab\/#organization\"},\"image\":{\"@id\":\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Creating-Custom-Reports-in-PDF-Odoo-17.0-Documentation.png\",\"articleSection\":[\"Web Development\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/\",\"url\":\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/\",\"name\":\"Creating Custom Reports in PDF - Odoo 17.0 Documentation\",\"isPartOf\":{\"@id\":\"http:\/\/167.86.116.248\/shivlab\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#primaryimage\"},\"image\":{\"@id\":\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Creating-Custom-Reports-in-PDF-Odoo-17.0-Documentation.png\",\"datePublished\":\"2024-07-16T13:36:25+00:00\",\"dateModified\":\"2025-06-02T11:20:38+00:00\",\"description\":\"Create custom PDF reports in Odoo 17.0 with step-by-step guidance. Leverage expert Odoo development services in South Africa by Shiv Technolabs.\",\"breadcrumb\":{\"@id\":\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#primaryimage\",\"url\":\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Creating-Custom-Reports-in-PDF-Odoo-17.0-Documentation.png\",\"contentUrl\":\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Creating-Custom-Reports-in-PDF-Odoo-17.0-Documentation.png\",\"width\":1170,\"height\":762,\"caption\":\"Creating Custom Reports in PDF - Odoo 17.0 Documentation\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/167.86.116.248\/shivlab\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating Custom Reports in PDF &#8211; Odoo 17.0 Documentation\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/167.86.116.248\/shivlab\/#website\",\"url\":\"http:\/\/167.86.116.248\/shivlab\/\",\"name\":\"Shiv Technolabs Pvt. Ltd.\",\"description\":\"\",\"publisher\":{\"@id\":\"http:\/\/167.86.116.248\/shivlab\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/167.86.116.248\/shivlab\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"http:\/\/167.86.116.248\/shivlab\/#organization\",\"name\":\"Shiv Technolabs Pvt. Ltd\",\"url\":\"http:\/\/167.86.116.248\/shivlab\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/167.86.116.248\/shivlab\/#\/schema\/logo\/image\/\",\"url\":\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2022\/11\/stl-logo1.png\",\"contentUrl\":\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2022\/11\/stl-logo1.png\",\"width\":1280,\"height\":371,\"caption\":\"Shiv Technolabs Pvt. Ltd\"},\"image\":{\"@id\":\"http:\/\/167.86.116.248\/shivlab\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/ShivTechnolabs\/\",\"https:\/\/x.com\/Shiv_Technolabs\",\"https:\/\/www.linkedin.com\/company\/shivtechnolabs\/\",\"https:\/\/www.instagram.com\/shivtechnolabs\/\",\"https:\/\/in.pinterest.com\/ShivTechnolabs\/\"]},{\"@type\":\"Person\",\"@id\":\"http:\/\/167.86.116.248\/shivlab\/#\/schema\/person\/656b1fcc45a591961e3f3b061cd03206\",\"name\":\"Dipen Majithiya\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/167.86.116.248\/shivlab\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2022\/09\/02_emp_pic-dipen-150x150.png\",\"contentUrl\":\"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2022\/09\/02_emp_pic-dipen-150x150.png\",\"caption\":\"Dipen Majithiya\"},\"description\":\"I am a proactive chief technology officer (CTO) of Shiv Technolabs. I have 10+ years of experience in eCommerce, mobile apps, and web development in the tech industry. I am Known for my strategic insight and have mastered core technical domains. I have empowered numerous business owners with bespoke solutions, fearlessly taking calculated risks and harnessing the latest technological advancements.\",\"sameAs\":[\"http:\/\/167.86.116.248\/shivlab\/\",\"https:\/\/www.facebook.com\/dipen.majithiya\",\"https:\/\/www.linkedin.com\/in\/dipenmajithiya\/\",\"https:\/\/x.com\/dip_majithiya\"],\"url\":\"http:\/\/167.86.116.248\/shivlab\/author\/dipen_majithiya\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating Custom Reports in PDF - Odoo 17.0 Documentation","description":"Create custom PDF reports in Odoo 17.0 with step-by-step guidance. Leverage expert Odoo development services in South Africa by Shiv Technolabs.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/","og_locale":"en_US","og_type":"article","og_title":"Creating Custom Reports in PDF - Odoo 17.0 Documentation","og_description":"Create custom PDF reports in Odoo 17.0 with step-by-step guidance. Leverage expert Odoo development services in South Africa by Shiv Technolabs.","og_url":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/","og_site_name":"Shiv Technolabs Pvt. Ltd.","article_publisher":"https:\/\/www.facebook.com\/ShivTechnolabs\/","article_author":"https:\/\/www.facebook.com\/dipen.majithiya","article_published_time":"2024-07-16T13:36:25+00:00","article_modified_time":"2025-06-02T11:20:38+00:00","og_image":[{"width":1170,"height":762,"url":"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Creating-Custom-Reports-in-PDF-Odoo-17.0-Documentation.png","type":"image\/png"}],"author":"Dipen Majithiya","twitter_card":"summary_large_image","twitter_creator":"@dip_majithiya","twitter_site":"@Shiv_Technolabs","twitter_misc":{"Written by":"Dipen Majithiya","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#article","isPartOf":{"@id":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/"},"author":{"name":"Dipen Majithiya","@id":"http:\/\/167.86.116.248\/shivlab\/#\/schema\/person\/656b1fcc45a591961e3f3b061cd03206"},"headline":"Creating Custom Reports in PDF &#8211; Odoo 17.0 Documentation","datePublished":"2024-07-16T13:36:25+00:00","dateModified":"2025-06-02T11:20:38+00:00","mainEntityOfPage":{"@id":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/"},"wordCount":2152,"publisher":{"@id":"http:\/\/167.86.116.248\/shivlab\/#organization"},"image":{"@id":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#primaryimage"},"thumbnailUrl":"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Creating-Custom-Reports-in-PDF-Odoo-17.0-Documentation.png","articleSection":["Web Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/","url":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/","name":"Creating Custom Reports in PDF - Odoo 17.0 Documentation","isPartOf":{"@id":"http:\/\/167.86.116.248\/shivlab\/#website"},"primaryImageOfPage":{"@id":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#primaryimage"},"image":{"@id":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#primaryimage"},"thumbnailUrl":"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Creating-Custom-Reports-in-PDF-Odoo-17.0-Documentation.png","datePublished":"2024-07-16T13:36:25+00:00","dateModified":"2025-06-02T11:20:38+00:00","description":"Create custom PDF reports in Odoo 17.0 with step-by-step guidance. Leverage expert Odoo development services in South Africa by Shiv Technolabs.","breadcrumb":{"@id":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#primaryimage","url":"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Creating-Custom-Reports-in-PDF-Odoo-17.0-Documentation.png","contentUrl":"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Creating-Custom-Reports-in-PDF-Odoo-17.0-Documentation.png","width":1170,"height":762,"caption":"Creating Custom Reports in PDF - Odoo 17.0 Documentation"},{"@type":"BreadcrumbList","@id":"http:\/\/167.86.116.248\/shivlab\/blog\/creating-custom-reports-pdf-odoo-17-0-documentation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/167.86.116.248\/shivlab\/"},{"@type":"ListItem","position":2,"name":"Creating Custom Reports in PDF &#8211; Odoo 17.0 Documentation"}]},{"@type":"WebSite","@id":"http:\/\/167.86.116.248\/shivlab\/#website","url":"http:\/\/167.86.116.248\/shivlab\/","name":"Shiv Technolabs Pvt. Ltd.","description":"","publisher":{"@id":"http:\/\/167.86.116.248\/shivlab\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/167.86.116.248\/shivlab\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"http:\/\/167.86.116.248\/shivlab\/#organization","name":"Shiv Technolabs Pvt. Ltd","url":"http:\/\/167.86.116.248\/shivlab\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/167.86.116.248\/shivlab\/#\/schema\/logo\/image\/","url":"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2022\/11\/stl-logo1.png","contentUrl":"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2022\/11\/stl-logo1.png","width":1280,"height":371,"caption":"Shiv Technolabs Pvt. Ltd"},"image":{"@id":"http:\/\/167.86.116.248\/shivlab\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ShivTechnolabs\/","https:\/\/x.com\/Shiv_Technolabs","https:\/\/www.linkedin.com\/company\/shivtechnolabs\/","https:\/\/www.instagram.com\/shivtechnolabs\/","https:\/\/in.pinterest.com\/ShivTechnolabs\/"]},{"@type":"Person","@id":"http:\/\/167.86.116.248\/shivlab\/#\/schema\/person\/656b1fcc45a591961e3f3b061cd03206","name":"Dipen Majithiya","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/167.86.116.248\/shivlab\/#\/schema\/person\/image\/","url":"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2022\/09\/02_emp_pic-dipen-150x150.png","contentUrl":"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2022\/09\/02_emp_pic-dipen-150x150.png","caption":"Dipen Majithiya"},"description":"I am a proactive chief technology officer (CTO) of Shiv Technolabs. I have 10+ years of experience in eCommerce, mobile apps, and web development in the tech industry. I am Known for my strategic insight and have mastered core technical domains. I have empowered numerous business owners with bespoke solutions, fearlessly taking calculated risks and harnessing the latest technological advancements.","sameAs":["http:\/\/167.86.116.248\/shivlab\/","https:\/\/www.facebook.com\/dipen.majithiya","https:\/\/www.linkedin.com\/in\/dipenmajithiya\/","https:\/\/x.com\/dip_majithiya"],"url":"http:\/\/167.86.116.248\/shivlab\/author\/dipen_majithiya\/"}]}},"jetpack_featured_media_url":"http:\/\/167.86.116.248\/shivlab\/wp-content\/uploads\/2024\/07\/Creating-Custom-Reports-in-PDF-Odoo-17.0-Documentation.png","_links":{"self":[{"href":"http:\/\/167.86.116.248\/shivlab\/wp-json\/wp\/v2\/posts\/12298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/167.86.116.248\/shivlab\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/167.86.116.248\/shivlab\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/167.86.116.248\/shivlab\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/167.86.116.248\/shivlab\/wp-json\/wp\/v2\/comments?post=12298"}],"version-history":[{"count":9,"href":"http:\/\/167.86.116.248\/shivlab\/wp-json\/wp\/v2\/posts\/12298\/revisions"}],"predecessor-version":[{"id":24268,"href":"http:\/\/167.86.116.248\/shivlab\/wp-json\/wp\/v2\/posts\/12298\/revisions\/24268"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/167.86.116.248\/shivlab\/wp-json\/wp\/v2\/media\/12307"}],"wp:attachment":[{"href":"http:\/\/167.86.116.248\/shivlab\/wp-json\/wp\/v2\/media?parent=12298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/167.86.116.248\/shivlab\/wp-json\/wp\/v2\/categories?post=12298"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/167.86.116.248\/shivlab\/wp-json\/wp\/v2\/tags?post=12298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}