Create PDF using TCPDF and Add it as Email Attachment
Arclab® Web Form Builder
Notes:
TCPDF is an "Open Source PHP class for generating PDF
documents".
TCPDF can be downloaded from the manufacturer and unzipped
into a folder on your web server or installed with "composer".
Homepage:
https://tcpdf.org
open_in_new
TCPDF Installation:
- Go to the author's github page: https://github.com/tecnickcom/tcpdf open_in_new
- Click on "Code" and select "Download Zip" to download the library.
- Create a folder with the name "tcpdf" on your web server and unzip the file into the folder.
- You can also install the library using composer: https://packagist.org/packages/tecnickcom/tcpdf open_in_new
Add a new "Submission Task"
Switch to the "Email and Database" tab and select the
type of task you want to add under "Add Submission Task":
Please note that this functionality is only available
in the "Test Version" or in the "Developer Edition".

Add the Code to Create the PDF Document
An example PHP code is automatically generated, which contains 2 fields
from your form (if available).
Of course, you can also simply copy your
existing PHP code into the editor to create a PDF document with TCPDF. In
this case, please make sure that you change the parameters of the TCPDF
"Output" function as described below and assign the result to the PHP variable
$att_content_data.

Sample Code:
// Include the main TCPDF
library. The library must be installed on your web server.
// Please
note that you may have to
adjust
the path so that it refers to the include file.
$tcpdfinclude
= 'tcpdf/tcpdf.php';
if(!stream_resolve_include_path($tcpdfinclude))ErrorCancel('Invalid
TCPDF include path');
require_once($tcpdfinclude);
///////////////////////////////////////////////////////////
// Example code for generating the PDF document with TCPDF
// Replace
the example code with your own code
$pdf = new TCPDF();
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->AddPage();
// In the following
example code, a simple HTML cell with 2 values is inserted into the PDF
document.
// The form data is accessed using the variables ($ID..) displayed
on the right under "Form Field Variables".
// The helper function "ToHtml($ID..)"
converts the form fields from plain text to HTML.
$html =
'<p>
First_Name: '.ToHtml($ID39).'<br>
Last_Name: '.ToHtml($ID44).'<br>
</p>';
$pdf->writeHTMLCell(0, 0, 10, 10, $html);
///////////////////////////////////////////////////////////
// The code below outputs the PDF document as string and assigns it
to $att_content_data.
// The 2nd parameter 'S' returns the document as
a string. The 1st paramter is ignored.
$att_content_data = $pdf->Output('ignored',
'S');
Code Details
First the TCPDF library has to be included. This can be done e.g. via the code:
require_once('tcpdf/tcpdf.php');
In the example above, the code has been slightly modified to display an error message if the path is incorrect:
$tcpdfinclude = 'tcpdf/tcpdf.php';
if(!stream_resolve_include_path($tcpdfinclude))ErrorCancel('Invalid TCPDF
include path');
require_once($tcpdfinclude);
In this example the include file of the TCPDF library is in the subdirectory
"tcpdf".
Please note that you have to adapt the
path according to your TCPDF installation
The path is case-sensitive!
Sample: tcpdf/tcpdf.php is not the same as TCPDF/tcpdf.php (!)
See also:
Adjust
the Path of the PHP "include" File for external PHP libraries
The contents of the form fields can be accessed via the php variables displayed on the right:

A php variable is assigned to each form field, which contains the value
of the field, e.g. the user input/selection.
The variable name corresponds
to the ID in the form.
The helper function "ToHtml($ID..)" converts the
form fields from plain text to HTML.
Important!
Return the PDF document as a string and assign it to $att_content_data.
To do this, you have to change the parameters of the function "Output" so that it returns the PDF document as a string to the variable $att_content_data:
$att_content_data = $pdf->Output('ignored', 'S');
The second parameter must be changed to
'S'. This means that
the PDF document is not sent directly to the browser, but returned as a
string.
The first parameter (file name)
is ignored when the TCPDF output is returned as a string.
If you want to change the file name of the attachment, click on "Email File Attachment" in the menu or in the right area on "File Name".
Change the Order of the Tasks
Important!
Please note that all tasks are executed the order shown under "Email and Database". The file attachment must have been created before the email and will then be attached to all subsequent emails. You can use the "Move Up" and "Move Down" buttons to change the order of the tasks accordingly.
