PDF File
Read a signed PDF file and extract data coming from the embedded certificate
The source PDF file is identified starting from the source directory id + fileName.
The specified PDF file is signed file, i.e. it contains a certificate; this certificate is then extracted and saved in the destination directory. The certificate file, if recognized with a MIME type, is renamed to a name having the original name + its real extension. Otherwise, it is saved with the original source file name.
Syntax
Details
Argument | Description |
srcDirectoryId | id used to identify a source folder in the server file system where the PDF signed file to read has been stored |
destDirectoryId | id used to identify a folder in the server file system when the extracted document (the certificate) will be saved |
fileName | file name inside the specified folder |
obj | embedded document, expressed as a javascript object |
The returned javascript object contains the following attributes:
expirationDate
firstName
lastName
personId
signerCountry
signerId
signerOrganization
personalVatNumber
corporateVatNumber
corporateName
personCountry
mimeType - MIME type for the embedded file; e.g. application/xml, application/pdf, etc.
destFilePath - absolute path + file name, related to the embedded file
signDate - the sign date, expressed as a javascript Date
Writing a very long PDF file on the server file system
From 6.0.2 version
Write a very long PDF file on the server file system, through a 3 steps approach:
first, open the output stream, through the "openPDFFile" method; it can work with already existing files as well, but in such a case, the memory consumption is higher and it is not recommended to read an already existing file if this is pretty big (hundreds pages or more).
next, add as many rows as you need, by invoking the "addLineToPDFFile" method multiple times, for each row to add
finally, close the output stream, by invoking the "closePDFFile"
Data could be retrieved from a SQL query, through the executeQueryWithCallback method, since this will ensure a limited amount of memory consumption.
Important note: the PDF file can be filled starting from a set of text lines; all lines inherit the same style (font + line height); lines are appended automatically, each with the same specified height; it is possibile to define the page size (e.g. A4, Letter, etc.), orientation (portrait vs landscape) and margins; a new page is automatically created when appended lines reach the bottom part of the current page.
This method can be used to create up to 1M lines (more or less some tens thousand pages), approximately in 15 mins, consuming about 200Mb of memory. Memory is upper-bound limited to such amount, since data is automatically flushed every 1000 pages.
Syntax for openPDFFile method
Details
Argument | Description |
fileName | CSV file name to create within the specified directory |
directoryId | directory identifier, used to define the absolute path, in the central server, where the file will be stored; if null, there must be one only entry for this application |
additionalSettings | optional javascript object, containing additional settings to define the PDF rendering, in terms of margins, page format (A4, Letter, etc.), line height, font name/size, etc. { fontName: "Courier", fontSize: 10, size: "A4", top: 20, // top margin left: 20, // left margin bottom: 20, // bottom margin height: 10, // line height orientation: "portrate", overwriteFile: true|false } Allowed values for fontName: "Courier-Bold", "Courier-BoldOblique", "Times-Roman", "Helvetica-Oblique", "Courier-Oblique", "Symbol", "Times-Italic", "Helvetica", "Helvetica-Bold", "Times-BoldItalic", "ZapfDingbats", "Times-Bold", "Helvetica-BoldOblique", "Courier" Allowed values for orientation: "portrait","landscape" Allowed values for size: "A0"..."A6","LETTER" If the "overwriteFile" attribute is omitted, the specified file is always created from scratch and an already existing file would be deleted before. If set to false, the already existing file is appended and the "addPageToPDFFile" method will always append pages at the end. |
fileId | a text id, representing the output stream, to refer in the next two methods. |
Syntax for addLineToPDFFile method
Details
Argument | Description |
fileId | a text id, representing the output stream, needed to work qwith the correct output stream |
line | String text to append to the current page; a new page is automatically created when the next line position would be over the max page height - bottom margin - line height. Page height depends on the page "size". It is possible to force a new page before reaching the bottom part of the page through the "addPageToPDFFile" method. |
additionalSettings | additional settings for the current line, expressed as a javascript object; not supported at the moment |
Syntax for loadPDFFont method
Use this method to register an external TTF font to use within this PDF, through setLineToPDFFile
Details
Argument | Description |
fileId | a text id, representing the output stream, needed to work qwith the correct output stream |
fontAlias | the font name: can be anything; it will be referred within the setLineToPDFFile method |
fontFileName | path + font file name |
Syntax for setLineToPDFFile method
Details
Argument | Description |
fileId | a text id, representing the output stream, needed to work qwith the correct output stream |
x | X coordinate where positioning the text |
y | Y coordinate where positioning the text |
line | String text to include to the current page, at the specified position |
additionalSettings | mandatory settings for the current line, expressed as a javascript object, having the following optional attributes: { fontName: "Helvetica-Bold", fontSize: 50 } Allowed values for "fontName": "Courier-Bold", "Courier-BoldOblique", "Times-Roman", "Helvetica-Oblique", "Courier-Oblique", "Symbol", "Times-Italic", "Helvetica", "Helvetica-Bold", "Times-BoldItalic", "ZapfDingbats", "Times-Bold", "Helvetica-BoldOblique", "Courier" Additionally, you can register external TTF fonts, using the previous method, loadPDFFont and then refer them here: fontName will be set as the fontAlias in the previous method |
Syntax for addImageToPDFFile method
Details
Argument | Description |
fileId | a text id, representing the output stream, needed to work qwith the correct output stream |
x | X coordinate where positioning the image |
y | Y coordinate where positioning the image |
imgPath | absolute path + file name of the image to include; image must be locally saved and must have one of these formats: png, jpeg, tif |
width | image witdh; it must be already known |
height | imahe height; it must be already known |
Syntax for addBarcodeToPDFFile method
Details
Argument | Description |
fileId | a text id, representing the output stream, needed to work qwith the correct output stream |
x | X coordinate where positioning the barcode |
y | Y coordinate where positioning the barcode |
barcode | barcode, expressed as a String |
barcodeType | the barcode type; supported types are: "Code128", "Code39", "Interleaved2Of5", "Ean8", "Upca", "pdf417" (case insensitive) |
additionalSettings | mandatory settings for the current barcode, expressed as a javascript object, having the following optional attributes: { fontName: "Helvetica-Bold", fontSize: 50, textPosition: "NONE", width: 200, height: 100, dpi: 300 } Allowed values for "textPosition": "NONE" (do not show the label), "TOP" (show the label above the barocode), "BOTTOM" (show the label below the barcode) Allowed values for "fontName": "Courier-Bold", "Courier-BoldOblique", "Times-Roman", "Helvetica-Oblique", "Courier-Oblique", "Symbol", "Times-Italic", "Helvetica", "Helvetica-Bold", "Times-BoldItalic", "ZapfDingbats", "Times-Bold", "Helvetica-BoldOblique", "Courier" |
Syntax for closePDFFile method
Details
Argument | Description |
fileId | a text id, representing the output stream, needed to work with the correct output stream |
Example
Syntax for addPageToPDFFile method
It can be used to force the creation of a new page.
Details
Argument | Description |
fileId | a text id, representing the output stream, needed to work with the correct output stream |
Syntax for movePDFPage method
It can be used to move the cursor to the specified page (index starts from 0). Use this method only if an already existing file has been read (overwriteFile attribute set to false).
Only after invoking this method, the setLineToPDFPage can be invoked.
Details
Argument | Description |
fileId | a text id, representing the output stream, needed to work with the correct output stream |
pageIndex | page index, starting from 0 |
Syntax for getPDFPageCount method
It can be used to get the total number of pages in an already existing PDF document.
Details
Argument | Description |
fileId | a text id, representing the output stream, needed to work with the correct output stream |
total number of pages |
Syntax for getPDFOrientation method
It can be used to get the PDF page orientation, for an already existing PDF document.
Details
Argument | Description |
fileId | a text id, representing the output stream, needed to work with the correct output stream |
it returns either "portrait" or "landscape" |
Writing a background text to a PDF file
From 6.0.2 version
Starting from an already existing PDF file, this method adds a text in the middle of the page, for each page, in the background.
Syntax
Details
Argument | Description |
dirId | a directory id, where the already existing PDF file is stored |
pdfFile | PDF file name |
background | text to include in the background, for each page |
settings | additional settings, expressed as a javascript object, having the following optional attributes: { red: 200, green: 200, blue: 200, fontName: "Helvetica-Bold", fontSize: 50, fileName: "newfile.pdf" } Allowed values for "fontName": "Courier-Bold", "Courier-BoldOblique", "Times-Roman", "Helvetica-Oblique", "Courier-Oblique", "Symbol", "Times-Italic", "Helvetica", "Helvetica-Bold", "Times-BoldItalic", "ZapfDingbats", "Times-Bold", "Helvetica-BoldOblique", "Courier" |
Note: if no settings has been specified, the default values reported above will be used.
Protecting a PDF file
From 6.0.2 version
Starting from an already existing PDF file, this method defines the protection policy to add to a document for password-based protection: it protects a PDF document with password for the document owner and in read-only for the generic user
Syntax
Details
Argument | Description |
passwordRestriction | password for the read-only user |
passwordOwner | password for the document owner |
fullPathSrc | absolute path + PDF file name for the already existing PDF file to protect |
fullPathDest | absolute path + PDF file name for the PDF file protected |
Merging multiple PDF files
Starting from already existing PDF files, this method creates a new PDF files composed of all the other files, appended in the same order specified in the input list.
Syntax
Details
destinationFile | absolute path + file name of the PDF file to create, in the local file system |
files | array of already existing PDF files to append; each file is a String composed of absolute path + file name |
Last updated