CIB pdf toolbox technical guide (EN)
14. Internal modules in detail
14.2. CIB pdf/join/split
This
section gives an introduction to the functionality of the PdfJoin of the CIB
pdf toolbox since version 1.3.60.
With the InputFilename property, in addition to joining entire PDF documents
(as before), it is also possible to join specific pages of one or more PDF
documents in combination with empty pages.
Examples for page selection
Special properties for changing document properties
Special properties for the generation of graphics
Special properties for the ZUGFeRD data model
Blackening functionality
Special options for PDF join
Name |
Value |
Effect |
||
InputFilename |
=“[{PageNumbe(s);]FileName[;[{PageNumber(s)};]FileName; | EMPTY[:width,height];]...“
Values in square brackets are optional. |
A result document is compiled from the documents, page specifications etc. specified in InputFilename. At least one PDF document with or without page specification(s) must be specified. In addition to this, further PDF documents with or without page specification(s) as well as empty pages with or without page size can follow. The page details must be given in curly brackets. |
||
PageNumber(s) |
Not specified or "All" |
Select all pages |
||
“Odd” |
Select odd pages |
|||
“Even” |
Select even pages |
|||
“First” |
Select first page only |
|||
“Last” |
Select last page only |
|||
“NoFirst” |
Select all pages except the first |
|||
“NoLast” |
Select all pages except the last one |
|||
Number |
Select page number only |
|||
Number1-Number2 |
From page select Number1 to Number2, where Number1<Number2 |
|||
Number1-Number2,Number3...,NumberN-NumberM |
Select multiple pages or page ranges (comma as separator) |
|||
FileName |
Path to file |
The pages of this file are selected |
||
EMPTY |
“EMPTY” |
Insert a blank page with width and height of the last inserted page |
||
Width |
Number (integer, x, or decimal, x.y, allowed) |
Set width of blank page in mm |
||
Height |
Number (integer, x, or decimal, x.y, allowed) |
Set the height of the blank page in mm |
||
PageRotation |
page number(s);angle[;page number(s);angle][;...] |
Individual pages can be rotated. Several pages can be specified at different angles. For the priorities see below. |
||
Page number(s) |
See InputFilename. |
The page numbers refer to the result document (after join/split). |
||
Angle |
Possible are: |
Degrees for rotation The rotation is clockwise in multiples of 90°. Example: PageRotation={All};90;{3};180 |
||
PageSelection |
The possible values are described in the chapter CIB pdf/print. Note: |
The PageSelection property is evaluated for the following output formats: OutputFormat= FormatPrinter |
||
PdfVersion (since Version 1.6.116b) |
Possible values: PDF/A-1b PDF/A-2b PDF/A-3b |
Set-Property One or more PDFs can be converted to the PDF version specified here. The property "OutputFormat=FormatPdf" or "OutputFormat=FormatSearchablePdf" must be set. |
||
SplitPages |
=0 (default)
=1 |
Result is an output document The result document is split into one-page output documents. The output documents are identified by appending a sequential number.
cibrsh SplitPages=1 -fj Dok1.pdf;Dok2.pdf output.pdf results in: |
||
EmbeddedFiles (since Version 1.8.0) |
<EmbeddedFiles> ::= <EmbedFilename> | <EmbedFilename>;<EmbedFilename> <EmbedFilename> ::= „{“<PageReference>;<EmbedFilename-withoutpage>“}“|“{“<EmbedFilename-withoutpage>“}“ <EmbedFilename-withoutpage> ::= <Relationship>;<EmbedFilename-simple>|<Description>;<EmbedFilename-simple>|<Relationship>;<Description>;<EmbedFilename-simple>|<EmbedFilename-simple> <Relationship> ::= “RELATIONSHIP=”<name> <Description> ::= “DESC=”<name> <EmbedFilename-simple> ::= Filename |
Set-Property This property can be used to specify a list of files to be attached to the PDF or to individual pages of the PDF during PDF generation. The file(s) are entered in the relevant catalog/page dictionary. Example: EmbeddedFiles={1-3;Relationship=Source;Desc=”Description”;file1.pdf};{Relationship=Source;Desc=”Description for another file”;file2.pdf}; To consider: - “Description” is only evaluated for PDF versions >= 1.6. Any text can be entered. -
“Relationship” is only evaluated for PDF/A3
conversion (PDF/A-3a, PDF/A-3b, PDF/A-3u). - If one or more page numbers are specified for an embed file name, the file is added as an attachment to that page(s). Otherwise it is an attachment of the complete PDF document. - The page number can be: Page number(s), range or a combination of both, separated by commas. Example: "1.5-6.10";; In "EmbedFilename" the following characters can be used for masking: "\;" for ";" "\\" for "\." |
||
DeleteEmbeddedFiles (since Version 1.8.0) |
<DeleteEmbeddedFiles> ::=
All |. |
Set-Property This property can be used to specify a list of files to be removed
from the PDF attachment. The corresponding entries are deleted from the relevant
catalog/page dictionary. Example: DeleteEmbeddedFiles={test.pdf};{22} DeleteEmbeddedFiles=test.pdf;13 Notes: - „All“: All attachments are deleted. The file to be deleted can be specified by its name or a number. -
Name: -
Number: |
||
UpdateEmbeddedFiles (since Version 1.8.0) |
Syntax is identical as |
Set-Property This property can be used to change the description of the attached files. Note: - The file to be modified can be specified by its name or a number or both. see „DeleteEmbeddedFiles“ Example: UpdateEmbeddedFiles={Desc=Desc;Relationship=Source;file.pdf;2};{Desc=Desc;Relationship=Source;file2.pdf} |
||
ExtractEmbeddedFiles (since Version 1.8.0) |
Syntax is identical as |
Set-Property This property can be used to extract an attached file from the PDF. The output is sent to the file specified in the property "OutputFilename". |
||
EmbeddedFilesInfo (since Version 1.17.0) |
The content has the following structure: [{"Relationship": "File type", "ID":IdNr, "Filename": "Filename", "Size":Size, "CompressedSize":CompressedSize} ] File type=None | Source | CibEpdfSource | HybridPdfSource | any default value for an AFRelationship key IdNr=Sequential number of embedded files(For LibreOffice hybrid PDFs the number is negative) |
Get-Property It is a Get-Property, which returns information about files embedded in the PDF in JSON format. Required
is: OutputFormat=FormatInfo
Examples: Embedded Cib Epdf source file: [ {”Relationship”:”CibEpdfSource”,”ID”:1,”Filename”:”Utf8FilenameWithoutBom.pdf”,”Size”:1024,”CompressedSize”:512} ] 2 Embedded Cib Standard source files: [ {”Relationship”:”Source”,”ID”:1,”Filename”:”FirstUtf8FilenameWithoutBom.anyext”,”Size”:1024,”CompressedSize”:512},{”Relationship”:”Source”,”ID”=2;”Filename”:”SecondUtf8FilenameWithoutBom2.anyext”,”Size”:2048,”CompressedSize”:1024} ] Embedded content of LibreOffice HybridPdfs: [ {”Relationship”:”HybridPdfSource”,”ID”:-1, “Filename”:”TheSameAsPdfDocName.odt”,”Size”:1024,”CompressedSize”:512} ] |
||
EmbeddedFilesInfoFilter (since Version 1.17.0) |
EmbeddedFiles Epdf or both |
Set-Property This property can be used to restrict the type of the embedded file. Required is: |
||
FilterInfo (since Version 1.8.0)
|
RtfBookmarks
|
Get-Property Information about the document properties and bookmarks contained in the PDF is written to an XML file. Required is:
The document properties are written to the XML file All (RTF) bookmarks contained in the PDF are written to the XML file. Structure of the XML file: <pdfdocument> |
||
(since Version 1.17.0) |
EmbeddedFilesInfo |
Information about the files embedded in the PDF is returned in the EmbeddedFilesInfo property. |
||
(since Version 1.20.0) |
FontsInfo ImagesInfo |
Information about the fonts and images contained in the PDF document is returned in the properties FontsInfo and ImagesInfo. |
||
Region (since Version 1.4.86) |
=[[<page>:]<x1_mm>;<y1_mm>;<x2_mm>;<y2_mm>]...
Values in square brackets are optional |
With Region you specify one or more rectangles, and the sides on which the rectangles are located. The union of all these rectangles (intersected with the side face) indicates the area from which the text is extracted, i.e. all characters that are not at least partially within one of these rectangles are ignored as if they were not present. If OutputFormat=FormatText is specified, the extracted text is written to outputfile.txt, formatted as unicode and with line breaks |
||
<page>: |
Not specified or “All“ |
Description see above |
||
<x1_mm>;<y1_mm> …… |
Numbers, separated by semicolon. The unit is mm. |
2 pairs of values are required to describe a rectangle. Each pair describes the coordinates of a corner point of the rectangle. The reference point for the coordinates is the upper left corner of the page.
Example: cibrsh OutputFormat=FormatText Region=NoLast:10;20;80;40;1:85;120;190;145 -fj Test.pdf output.txt |
||
PageCropping (since Version 1.25.0) |
JSON Syntax PageCropping= [<*PageBoxInfo*>, <*PageBoxInfo*>] PageBoxInfo = {”PageNumber”:<PageNum>, “ClipBox”:[<X0>, <Y0>, <Width>, <Height>]} PageNumber = Page number of PDF ClipBox is an area with the parameters : X0(left), Y0(bottom), width, height unit: pt The X0 and Y0 values are relative to the upper left corner of a visible page (or image). |
This property can be used to set a rectangle that defines a mask frame. This frame crops the PDF document for display in the PDF viewer or for printing. Cropping only hides the information outside the mask frame and does not delete it, i.e. if the frame is subsequently modified, the hidden information is visible again. Die Property-Einträge beziehen sich immer auf eine Seite des PDF-Dokuments. Example: Cropping the first and third page of the PDF document: PageCropping=[{’PageNumber’:1, ‘ClipBox’:[10,20,300,400]}, {’PageNumber’:3, ‘ClipBox’:[20,20,100,200]}] |
||
TableMode (since Version 1.4.100) |
=0 (default)
=1 |
Extracted text is output continuously.
Extracted text is output as a table. |
||
TextFormattingOptions (since Version 1.20.0)
(since Version 1.25.0) |
={
“SeparateTextBlocks”: } |
With EnableTextFormatting=true (default=false) a special word processing module is activated with additional functions to improve the text quality as:
· - Eliminate hyphens from word division · - Dissolving ligatures · - Convert initials to normal text
Only for OutputFormat=FormatText Example: cibrsh.exe OutputFormat=FormatText TextFormattingOptions={”EnableTextFormatting”:true,”OutputFormats”:[”hocr”]} -fj input.pdf out.txt
SeparateTextBlocks=true (default=false) searches for text blocks, which are then separated by an empty line in the text output. This improves the readability of the output text. Text blocks are identified by the fact that they have a larger distance between them. |
||
API (since Version 1.20.0) |
=1
=2 |
Default: The CIB pdf toolbox executes the job.
The CIB pdf toolbox becomes a wrapper for the new CIB pdf modules. This means that the CIB pdf toolbox does not execute the task itself, but the library of the CIB pdfModule is loaded and this library takes over the execution. For details see chapter "CIB pdfModule" |
The page specifications have different priorities, so that lower priorities can be overwritten by higher ones. The priorities are distributed as follows:
No priority: All, Odd, Even, NoLast, NoFirst
priority RANGE: Number1 – Number2
priority DIRECT: Last, First, Number
The following order of priority applies: No priority < RANGE < DIRECT
If two specifications have the same priority, both apply, otherwise the one with the higher priority applies.
Examples for page selection
The following examples show possible assignments of the InputFilename property.
1) InputFilename=Document1.pdf;{4,7-9};Document2.pdf;Document3.pdf
Here all pages of document1.pdf,
pages four, seven, eight and nine of document2.pdf and all pages of document3.pdf
are joined together in exactly this order.
2) InputFilename={5,4,3,2};Document1.pdf;{All};Document2.pdf;Document3.pdf;{Even};Document4..pdf
Here the pages five, four, three and two of document1.pdf, all pages of document2.pdf, all pages of document3.pdf and all even pages of document4.pdf are joined in exactly this order.
3) InputFilename={First,Last};Document1.pdf;EMPTY;EMPTY:210,297;{7,10};Document2.pdf
Here the first and last page of Document1.pdf, a blank page with the width and height of the last page of Document1.pdf, a blank page with a width of 210 mm and height of 297 mm and pages seven and ten of Document2.pdf are joined in exactly this order.
4) InputFilename={};Document1.pdf;{Odd};Document2.pdf;EMPTY:210,297
Here all pages of document1.pdf, all odd pages of document2.pdf and an empty page with a width of 210 mm and a height of 297 mm are joined in exactly this order.
5) InputFilename={NoFirst};Document1.pdf;EMPTY:210,297;{8,6,5,2-4};Document2.pdf;EMPTY
Here all pages except the first of Document1.pdf, a blank page 210 mm wide and 297 mm high, pages eight, six, five, two, three and four of Document2.pdf and a blank page the width and height of the fourth page of Document2.pdf are joined in exactly this order.
Special properties for changing document properties
(from CIB pdf toolbox 1.4.84) Only in PDF Join.
Property |
Type |
Functionality |
Kind |
DocInfo.Author |
String |
Enters the author. Overwrites the information stored in the PDF. |
Get/ |
DocInfo.Title |
String |
Enters the title. Overwrites the information stored in the PDF. |
Get/ |
DocInfo.Subject |
String |
Enters the subject. Overwrites the information stored in the PDF. |
Get/ |
DocInfo.Keywords |
String |
Enters the keywords. Overwrites the information stored in the PDF. Maximum length is 64K. |
Get/ |
DocInfo.CreationDate |
String |
Enters the creation date Format: JJJJMMTThhmmss+01‘00‘ |
Get/ |
DocInfo.ModDate |
String |
Enters the date of change Format: JJJJMMTThhmmss+01‘00‘ |
Get/ |
ModuleName |
String |
Enters the program with which the PDF was created. |
Get/ |
CallerApplicationname |
String |
Application that changed the PDF. |
Get/ |
Special properties for the generation of graphics
(from CIB pdf toolbox Version 1.4.102)
With the module CIB pdf join it is possible to create graphic files in addition to PDF output.
Property |
Functionality |
Type |
|
OutputFormat |
Format of the output file The following graphic formats are supported: FormatTiff FormatBmp
FormatWebview |
String |
|
OutputFormat (since Version 1.5.113) |
FormatExtractImages If this output format is specified, all Image-XObjects contained in the input PDFs are exported. The output is in TIFF format or in JPEG format under the file name specified in OutputFilename. Note: - No PDF is written - OutputFilename is a required field - Output to memory is not possible - No dpi value is written to the TIFF image file(s) A.) For the TIFF images there are two cases to distinguish: 1.)
TiffSinglePage=“0“ (default): 2.)
TiffSinglePage=“1“: „Output“ is the value of OutputFilename, but without extension „000pp“ is the number of the page on which the image object first appears. „000oo“ is the number of the image object.
TIFF
images can be generated directly or the Pdf image objects are first converted
into the DIB format (Windows Bitmap) and from there into the TIFF format. - The Pdf image object has none of the filters JBIG2Decode, DCTDecode or JPXDecode. - It has no mask and is not a mask. - The color space is "DeviceGray", "DeviceRGB" or "DeviceCMYK" (with BitsPerComponent 8). - The entry "Decode" is missing or is the default entry for the respective color space ([0 1] for "DeviceGray", [0 1 0 1 0 1] for "DeviceRGB", [0 1 0 1 0 1 0 1] for "DeviceCMYK").
For all other Pdf image objects the TIFF output is done via the intermediate step as DIB format. In this case, not all image properties are retained. Remained also with the DIB intermediate step: Number of pixels in width and height of the image object. The following can be changed at the DIB
intermediate step:
- It has no mask and is not a mask. - The
color space is "DeviceRGB“. The JPEG file name is formed according to the same rule as the file name for the individual TIFF files (see above). |
String |
|
ExtractImagesCallback (since Version 1.17.0) |
Address of the callback function called by the CIB pdf toolbox when parsing the PDF document each time an image object is extracted.
|
String |
|
ExtractImagesUserdata (since Version 1.17.0) |
Address of the memory area where the extracted image data and its hash value is passed. |
String |
|
OutputFormat (since Version 1.14.0) |
FormatImage With this output format, the CIB pdf toolbox generates several output graphic formats during one rendering process. These must be raster graphics formats. Required: RenderingEngine="CIBRenderer" The "ImageType" property defines which graphic formats are to be created. |
String |
|
OutputFormat (since Version 1.14.0) |
FormatSvg The CIB pdf toolbox outputs a graphic file in SVG format (Scalable Vector Graphics). This is the specification recommended by the World Wide Web Consortium (W3C) for the description of two-dimensional vector graphics, which is based on XML. Name of the generated output: Required: RenderingEngine=“CIBRenderer“ |
String |
|
OutputFilename |
Name of the output file, with the appropriate extension. PNG and JPEG: One file is output per page in the PDF. The name is made unique by appending a consecutive number. |
String |
|
InputFilename |
Name of the input PDF Several PDFs, separated by semicolon, can also be entered. |
String |
|
AbortDocCallback (since Version 1.10.0) |
Address of the callback function for output document by memory transfer. Interface description see chapter "AbortDocCallback” |
String |
|
AbortDocCallbackPointer (since Version 1.10.0) |
Benutzerdaten des Callbacks für Rückmeldung nach jeder Seite |
String |
|
EventNotifier (since Version 1.24.0) |
The pointer to the instance of the callback class CibPdfEventNotifier is assigned to this property. This enables the output of RGB565 data into memory. Required for this functionality is OutputFormat=FormatBmp and RenderingEngine=CIBRenderer |
String |
|
ImageAlign (since version 1.8.6c) |
The property can be used to improve the alignment of graphics in the PDF if the graphics are contiguous and not rotated. Condition: 0 Optimization is switched off 1 Optimization is switched on (default) |
String |
|
ImageScaling (since version 1.9.7)
(since version 1.14.0) |
The property can be used to specify the maximum size of the graphic. width;height in px, or resolution in dpi. Valid values: Note: Examples: ImageScaling=100px;200px ImageScaling=;200px ImageScaling=200px ImageScaling=100dpi oder ImageScaling=100 Extension for the use of the property "ImageType": When generating several graphic formats in one rendering process, graphic proportions can be specified here for each graphic format generated. The values are listed in the same order as the graphic formats were defined in the "ImageType" property. For better readability the value pairs can be grouped with curly brackets. It is possible to enter blank values ";;", then the default DPI setting takes effect. Examples: ImageType=“png;tiff;bmp“ ImageType=“jpg;bmp“ |
String |
|
ImageType (since version 1.14.0) |
This property can be used to specify which graphic formats the CIB pdf toolbox should generate in a rendering process. Currently only raster image formats are possible here. Required is OutputFormat= FormatImage and RenderingEngine="CIBRenderer". Possible values are: Example: Name of the generated graphic files: In order to achieve unique file names for the various output formats
of a graphic file, the CIB pdf toolbox creates the file name as follows: Example: OutputFormat=“FormatImage“ Results in the following files: Note: |
String |
|
Threads (since version 1.15.0) |
With this property, the conversion into several graphic formats and the subsequent writing of the files can be parallelized during the rendering process, which leads to a better performance. Required are the properties ImageType and RenderingEngine=“CIBRenderer“ Possible values: N A maximum of N threads are used to create the graphic files. 0 No use of threads (default, behaviour of previous versions) |
String |
|
TiffResolution |
Resolution of the graphic output. Default value: 150 DPI |
String |
|
TiffStripSize |
StripSize as multiple of 8kB. 0 for none, Default is 4, so 32kB strips |
String |
|
TiffJpegQuality |
Only with TIFF: Jpeg compression factor, default is 75% |
String |
|
TiffSinglePage |
Only with TIFF: One TIFF file can be generated per PDF page. 0 One TIFF file per PDF (default) 1 One TIFF file per PDF page |
String |
|
TiffColorDepth |
Options for the color depth Only with JPG and PNG: 2Colors 256Colors 256Grayscale TrueColor (24Bit, Default) Only with BMP: HighColor (Requires RenderingEngine=CIBRenderer) |
String |
|
WebviewOutputConfiguration (since CIB pdf toolbox Version 1.10.0)
(since CIB pdf toolbox Version 1.17.0)
|
This property can be used to configure the generated output for the CIB doxiView so that only one output format is used instead of Png and Metafile by default. Possible Values: „Image“: „Metafile“: „MetafileAsSingleFile“: „MetafileNoPageContent“: „MetafileNoOutlines“: the values „MetafileNoOutlines“, MetafileNoPageContent“ and „MetafileAsSingleFile“ may be used cumulatively. They are only valid if "WebviewOutputConfiguration" is set to create metafiles only. When creating images, the entire PDF document must always be processed.
Examples: Standardvalue = „Image;Metafile“ (Since CIB pdf toolbox 1.20): Additionally, the option "ImageSkipAnnotations" can be used to specify that certain types of annotations for CIB doXiview rendering are not rendered into the output images. The option "ImageSkipAnnotations" has no effect on the output to a metafile. Example: WebviewOutputConfiguration=“Image;ImageSkipAnnotations:[Redact,Line];Metafile“ The following values are possible for annotation types: “Text”, “Link”, “FreeText”, “Line”, “Square”, “Circle”, “Polygon”, “PolyLine”, “Highlight”, “Underline”, “Squiggly”, “StrikeOut”, “Stamp”, “Caret”, “Ink”, “Popup”, “FileAttachment”, “Sound”, “Movie”, “Widget”, “Screen”, “PrinterMark”, “TrapNet”, “Watermark”, “3D”, “Redact”.
“MetafileWithGlyph” :
|
String |
|
SkipFormfieldContent (since CIB pdf toolbox Version 1.16.0)
|
Enables you to hide the contents of form elements (text fields, checkboxes, list fields) during display. Possible Values: 0: Form contents are displayed 1: Form contents are not displayed To be used in conjunction with OutputFormat=FormatWebview |
|
|
Special properties for the ZUGFeRD data model
(since CIB pdf toolbox Version 1.9.0)
The „Forum elektronische Rechnung Deutschland“ (FeRD) (Forum electronic invoices Germany) is the national platform of ministries, associations and companies to promote electronic invoicing in Germany. ZUGFeRD is the abbreviation for "Zentraler User Guide des Forums elektronische Rechnung Deutschland“ („Central User Guide of the Forum for electronic invoices Germany”)
Every invoice based on the ZUGFeRD data model must be a complete, valid invoice (both the PDF and XML representation). The XML file is always embedded with the name "ZUGFeRD-invoice.xml.
When embedding, the input file must either be in the PDF/A3 standard or a conversion to this standard must be carried out for the CIB pdf toolbox join.
Property |
Functionality |
Type |
ZUGFeRDXml |
Specifies a ZUGFeRD-compatible XML file, which is then embedded in the PDF in a ZUGFeRD-compatible manner. If OutputFormat=FormatInfo is specified, the property ZUGFeRDXml is assigned the name of the Zugferd XML if one is already embedded in the input PDF. |
String |
ZUGFeRDSchema |
Specifies a schema file against which the ZUGFeRD XML file can be checked during import or extraction. Example: Invoice.xsd |
String |
ZUGFeRDDoCheck |
Specifies whether a schema check should be performed when extracting or importing a ZUGFeRD XML file Possible Values: If no scheme file is specified in property ZUGFeRDSchema, the scheme file contained in the ZUGFeRD XML file is used for the scheme check. If the scheme check fails, an error 355 is issued. |
String |
ZUGFeRDDescription |
A description of the ZUGFeRD XML file can be stored in this property. This description is included in the PDF when the XML file is embedded. Input: Any text |
String |
Using the property "ExtractEmbeddedFile=zugferd" the ZUGFeRD XML file can be extracted in a normal CIB pdf toolbox join.
Blackening functionality
With the help of the "blackening" functionality you can remove the specified areas. They are no longer included in the resulting PDF output.
Name |
Value |
Effect |
ApplyRedactAnnotations
|
= 0 (default)
= 1 Blackening is carried out |
If a property is set, the CIB pdf toolbox blacks out the areas specified in the annotations.
Redaction (blackening) occurs in the following steps: 1. XFDF file is created with the editorial annotations. 2. CIB pdf toolbox imports these annotations into the PDF document via "AnnotationsFilename=abc.xfdf". The result is then a PDF that contains the areas to be blackened.
Example for XFDF file <?xml version="1.0" encoding="utf-8"?> <xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve"> <annots> <redact page="0" rect="66.0,474.0,152.0,393.0" interior-color="#000000"> </annots> </xfdf>
Note: -> The page numbers are zerobased specified. -> The desired coordinates can be set by specifying a rectangle rect="66.0,474.0,152.0,393.0" -> where PDF coordinates are used as the unit (1 cm corresponds to 28.333... PDF coordinates). The rectangle is given as x,y lower left corner and x,y upper right corner. The origin (coordinate 0,0) of the page is at the bottom left. |