Sign In

PDF Form Filler

You can use the PDF Form Filler service to populate a fillable PDF document with database data. This can be used for generating government-facing documents like tax forms, customs documents, etc.

You access the PDF Form Filler service by making an API call as shown below.

Example - Populate a PDF Template

Simply call parasql_http() as shown below. Replace YOUR_API_KEY with a key you create via Tools > API Keys.

CALL parasql_http( 'POST', 'https://www.appsynergy.com/api?action=PDF_AUTOFILL&apiKey=YOUR_API_KEY', JSON_OBJECT( 'sourcePdf', myDocumentField, -- a document field that contains the PDF template 'outputFilename', 'Filled_TAX_W2.pdf', 'fieldValues', JSON_OBJECT( 'SSN', '012-34-5678', -- be sure to use fully qualified field names 'FirstName', 'Bob', 'LastName', 'Smith' ), 'flattenFields': 'FILLED', -- enum: NONE, FILLED, ALL 'ignoreMissingFields': true ), 'MyCallback', -- name of your callback procedure NULL, NULL );

If you do not know the field names for the fieldValues property you can specify anything to begin with and the response will contain a list of valid field names.

The flattenFields option determines if editable fields are made read-only in the output PDF.

The Response

Your callback procedure must take the following parameters:

respCode INTEGER, respBody JSON, respHeaders JSON, optMetadata JSON

The respBody will look like this:

{ "status": "OK", "errorMessage": "", "errorCode": "", "data": { "outputPdf": "MyFilledW2TaxForm.pdf;12048;1598992709098;database/files/a655f610-febd-4f6a-b11d-6bcd696f5466.pdf", "pdfFieldInfo": [ { "fullyQualifiedName": "topmostSubform[0].Copy1[0].BoxA_ReadOrder[0].f2_01[0]", "isRequired": "false", "isReadOnly": "false", "type": "Tx" }, { "fullyQualifiedName": "topmostSubform[0].Copy1[0].Col_Left[0].f2_02[0]", "isRequired": "false", "isReadOnly": "false", "type": "Tx" } ] } }

You can get the outputPdf document field value like this:

JSON_VALUE(respBody, '$.data.outputPdf')

Your callback procedure will need to save the outputPdf to your database with code something like this:

INSERT INTO MyTable (MyTable_ID, MyDocumentField) VALUES (parasql_next_val('MyTable'), JSON_VALUE(respBody, '$.data.outputPdf') );