Deployment & Compliance
Is it possible to deploy PDF Generator API on premises (on-prem) or have dedicated infrastructure?
On premises deployment Yes, we do offer on premises deployment where we will ship the entire source code of PDF Generator API and you need to host it in your own servers. We don't limit the number of servers you use to scale vertically. We will also ship bash scripts which automate the version upgrades and deployment tasks. We do also offer a Dedicated Enterprise Deployment We provide the Dedicated deployment to our Enterprise customers who need more control over their environment.PopularIs PDF Generator API GDPR compliant?
We are committed to GDPR compliance across our services. Our infrastructure provider, Amazon Web Services, complies with the European Union’s General Data Protection Regulations and is part of the EU-US Data Privacy Framework. We also provide custom deployments in European regions provided by Amazon Web Services to help you achieve even higher standards of security. The Data Processing Agreement ensures an adequate level of data protection as prescribed by relevant legal frameworks, including iSome readersWhat does the "white label" mean in the Dedicated Enterprise Deployment?
The "white label" in the Dedicated Enterprise Deployment means that you can have a custom theme for the editor that matches your software UI color scheme and we also deploy the entire solution in separate instances so you can use your own subdomain for the editor and API calls. For more information please contact sales@pdfgeneratorapi.com or schedule a call with our team right away here.Some readers
Document Generation
How Credit Usage Is Calculated
Credit usage defines how credits are used when interacting with the API. Credits are calculated based on the type of endpoint used and, where applicable, the number of pages processed or generated. ℹ️ Credit usage is calculated on a monthly basis, from the 1st day of the month until the last day of the month. Please note that your billing period may differ from the monthly usage calculation period. The credit-based usage model applies to all new and existing customers as of January 1, 20Few readersHow to Generate Labels
Labels - Different types In document generation, labels are crucial in creating organized, customizable, and user-friendly outputs. Whether you’re generating invoices, contracts, reports, or any other document type, labels allow you to add clarity and structure by tagging fields with relevant information. At PDF Generator API, labels enhance the flexibility of templates by making it easier to identify, filter, and manipulate data elements within a document. In this post, we’ll explore the vaFew readersHow to Test Document Generation Without Consuming Credits
You can specify the parameter "testing" in the payload to generate a document preview without counting the generation as part of your monthly usage. This option will add a large PREVIEW watermark across your document. This will allow you to generate and preview test documents without worrying about your monthly usage increase. Please find this option in our API v4 documentation. Example payload {Few readersHow to use QR codes
QR Code This guide provides an in-depth look at what QR codes are, how they work, and their various applications, helping you understand their importance and how to utilize them effectively with PDF Generator API. A QR code consists of black squares arranged on a white background, forming a grid. These patterns encode data that can be read by QR code scanners or smartphones with built-in cameras. The data can include URLs, text, contact information, or other types of data that direct users tFew readers
Editor
How to use the editor?
The PDF Generator API Editor is a no-code, drag-and-drop interface for designing PDF templates. It allows you to visually build documents such as invoices, reports, or contracts using dynamic data. Introduction Components The editor offers multiple components with different functionalities, including text, tables, images, barcodes, and QR codes. Each component is designed to disFeaturedHow can I manage the layer order of components?
Managing the layer order of components allows you to control how elements are stacked in your document. By adjusting the order, you can ensure that key elements are displayed on top or behind others, creating the desired visual hierarchy. When you right-click on a component, you will see the options "Bring to Front" and "Send to Back" in the context menu. The "Bring to Front" option moves the selected component above all other components, while "Send to Back" places it behind all otherFew readersHow to add page numbers?
To display page numbers, you can use special placeholders {current_page} and {total_pages} in a Text component. At the moment, the Text component must be in a Header or Footer component to display the page number properly. Placeholders Display current page number: {current_page} Display total number of pages: {total_pages} Example Page: {current_page} / {total_pages} NB! The Text component must be in a Header or Footer component to displPopularHow to connect my template with data?
The PDF Generator API expects that the data in the JSON format is sent via the API request. JSON (JavaScript Object Notation) is a lightweight data interchange format that is easy to read and write, and easy for to parse and generate. It is widely used for transmitting data between a server and a web application as well as for storing configuration data. Example: { "employee": { "name": "John Smith", "age": 23, "position": "Developer", "skills": ["JavaScript", "PythonSome readersHow to Create Internal Links in a PDF
Internal links in PDFs allow readers to quickly navigate to different sections within the same document, which is especially useful for long documents or manuals. In this article, you’ll learn how to create internal PDF links using simple HTML anchor tags. How to Create an Internal PDF Link Step 1: Create the Link Add an anchor link that points to an internal placeholder using a hash (#) followed by the link name. <a href="#internal_link">Navigate to internal link</a>Few readersHow to Create a Table of Contents
A Table of Contents (TOC) helps users quickly navigate through a PDF document by listing the major sections and their page locations. To generate a TOC, you must properly structure your document using heading types such as H1, H2, H3, etc. Steps to Set Up a Table of Contents Step 1: Apply Heading Types Assign heading types to the main sections of your document using H1, H2, H3, or other heading levels. The text type can be selected on the **main toolbarFew readersHow to create Nested Array (Multidimensional Array)?
Nested Array is a wide-spread method to iterate an array inside another array. If you want to create a nested array you need to place a Container Component (or Table Component) inside another Container Component where one of them would have data field of the main array and the one inside would have nested array data. The Outer Array (Container Component) In this case The Outer Array represents different Orders and it is necessary to set the Container's data field to Orders (type Array). ?
A Background Image is a static Image in the back of your template. Once it is set, it can not be moved in the template which is quite essential when working in the editor. A Background Image can be also used as a Watermark in your template. A background image can be imported as a local file and also as a data field so that you can have dynamic background images. A Background Image can be set using right-click on a blank page --> and then selecting Background Image from your local files or insSome readersHow to set up alternate rows in the Container/Table component?
To set up Alternate rows for a Container component, you need to enable the Conditional formatting with the option "Change component style if matches the condition". Right click on the Container component and navigate to the Conditional formatting Select the Expression as a condition, where the expression looks like this: {row_index} % 2 == 0 This is how it looks in tSome readersHow to set up row numbering?
1. Approach with the {row_index} option {row_index} is our native functionality that can be used in a Table if you want to retrieve the row index/number from your array. This is how it looks in the final PDF: The {row_index} functionality can be also used in theSome readersHow to Sort, Filter and Transform Complex JSON Data
When working with data from different sources, it's common to encounter complex or deeply nested JSON structures. These can be difficult to work with directly in templates — both for you and your end users. To address this, you can define data settings that let you sort, filter, and transform your data, all without modifying your source system. Whether you're creating templates in the editor or via the API, these settings give you full control to customize your data — letting yoFew readersHow to Upload Your Existing PDF Document as a Template
You can easily bring your existing PDFs into the system and use them as templates. Uploading a PDF is quick and straightforward, giving you a ready-to-use template that you can further adjust and customize as needed. Uploading Your PDF Go to the Templates page in the Customer Portal. Click the arrow next to New Template. Select Import from PDF and choose your file. Your PDF will immediately appear as the background of a new template, with editable areas automaticaFew readersHow to use the "Group by" option with the Table or Container component?
The "Group by" option for the Table and Container components allows you to easily group your data sets by a specific data field. This option can be found in the Properties tab under Advanced Settings. Grouping with Table and Container Components How to set up Group by Add the Table or Container to the template and, in the Properties tab, select the array in the Data field option. In thSome readersIs it possible to conditionally change the component style or hide the component?
Yes, it is possible to conditionally hide or change the style of a component. By defining specific conditions, you can dynamically adjust the visibility or appearance of components, creating more flexible and interactive content. The ability to hide or change the style of a component depends on its type. While most components can be hidden, changing a component's style is only possible with certain specific components. ${frame}[Change component style or Hide component options](https://www.lPopularIs it possible to conditionally hide a page in the document?
Yes, it is possible to conditionally hide a page in a document. By using specific conditions, you can set up your document to automatically exclude certain pages. This feature helps streamline your document creation process, ensuring that only relevant content is included based on the conditions you define. Hide page based on condition How to hide a page based on a condition ToSome readersSupport Hacks & Workarounds
This article is a collection of our top support hacks and workarounds — tried-and-tested methods for overcoming common challenges and getting the most out of our platform in ways you might not have expected. Discover new tricks to add to your toolkit. 1. Collapsing Space for Conditionally Hidden Elements Scenario In a vertically stacked layout of elements, you may need to conditionally hide one or more elements based on certain data. When an element is hidden, the empty space itFew readersWhich fonts, languages and characters are supported?
Not every font supports all characters, so it is important to choose the right font based on the language you are using. Below is a list of free fonts available in our editor that support various characters: Arimo: Cyrillic, Greek, Hebrew, Latin Alef: Hebrew, Latin Cairo: Arabic, Latin Dejavu Sans: Arabic, Cyrillic, Greek, Hebrew, Latin El Messiri: Arabic, Cyrillic, Latin Hind: Devanagari, Latin Kanit: Latin, Thai Montserrat: Cyrillic, Latin M+ Japanese: Chinese, Cyrillic, GrPopular
System
Common payment errors with Braintree
Our current payment provider for credit card transfers is Braintree Payments. After your license is upgraded, you may encounter some errors, which we have summarized in the table below. Common Braintree Payment Errors and How to Resolve them Error Code Description 2000 (Do Not Honor) The customer's bank is unwilling to accept the transaction. The customer should contact their bank for more details. 2001 | (InsufficiPopularHow to copy a template between workspaces?
You can easily copy a template from one workspace to another by exporting its configuration and then importing it. This process creates a new template in the destination workspace, which is perfect for sharing templates across different organizations or projects. Export the Template First, you need to export the template's configuration as a .json file. This action saves the entire template structure to your local computer. There are two ways to do this: 1. From the TemplatPopularHow to Invite a New User
The PDF Generator API allows you to manage your team by inviting new members directly from your account. To add a new member, please follow the path TEAM > Members > Invite User. Before sending an invitation, we recommend reading our documentation to understand the different user roles available. How to invite a new MASTER USER To invite a new user, navigate to the TFew readersManaging Template Versions
Every time you save a template, a new version is automatically created. The version history lets you review, restore, export, delete versions and with Advanced Template Management you can also control which version is used in production. Advanced Template Management is available from the Basic plan and higher. For plan details and feature availability, see the pricing page. Viewing version history Go to the Templates tab and find yoFew readersHow to share templates with other workspaces?
To share your templates with all of your users, you need to Publish your template and set the template access type to Organization. If you just want to allow other Master Users to modify your templates you need to set the template access type to Organization and keep the templates as Draft. Once the template is finalized you can Publish it to make it available for all your users. 