This document provides information about PDFlib, a library for generating PDF documents dynamically from various programming languages. It discusses PDFlib's option list syntax which allows controlling API functions through customizable strings. Various data types that can be used in option lists are described, including strings, numbers, colors, and geometric values. Guidelines for constructing valid option lists are also provided.
An introduction to the Python programming language and its numerical abilities will be presented. With this background, Andrew Collette's H5Py module--an HDF5-Python interface--will be explained highlighting the unique and useful similarities between Python data structures and HDF5.
ZENUS INFOTECH is best Python Training institute in Roorkee and an ISO 9001:2008 Certified Engineer’s Training Company in Roorkee & provides training to the B.E./B.TECH/DIPLOMA/MCA/BCA and related field students in 35+ cutting-edge technologies like AutoCAD, Solid-Works, CATIA, REVIT, Pro-E, UG-NX .NET, JAVA, PHP, GST Tally and Wireless & Telecommunication and many more.
Building scalable and language independent java services using apache thriftTalentica Software
This presentation is about the key challenges of cross language interactions and how they can be overcome. We discuss the Apache Thrift as a solution and understand its principle of Operation with code snippets and examples.
An introduction to the Python programming language and its numerical abilities will be presented. With this background, Andrew Collette's H5Py module--an HDF5-Python interface--will be explained highlighting the unique and useful similarities between Python data structures and HDF5.
ZENUS INFOTECH is best Python Training institute in Roorkee and an ISO 9001:2008 Certified Engineer’s Training Company in Roorkee & provides training to the B.E./B.TECH/DIPLOMA/MCA/BCA and related field students in 35+ cutting-edge technologies like AutoCAD, Solid-Works, CATIA, REVIT, Pro-E, UG-NX .NET, JAVA, PHP, GST Tally and Wireless & Telecommunication and many more.
Building scalable and language independent java services using apache thriftTalentica Software
This presentation is about the key challenges of cross language interactions and how they can be overcome. We discuss the Apache Thrift as a solution and understand its principle of Operation with code snippets and examples.
A Technical Comparison: ISO/IEC 26300 vs Microsoft Office Open XML Alexandro Colorado
Two XML office file formats have been pressing upon our attention, the OASIS OpenDocument Format, recently standardized by ISO, and the Draft Ecma Office Open XML. This presentation will review history of each, the process that created them, and examine each format to compare and contrast how they deal with issues such extensibility, modularization, expressivity, performance, reuse of standards, programability, ease of use, and application/OS neutrality.
Data Science - Part II - Working with R & R studioDerek Kane
This tutorial will go through a basic primer for individuals who want to get started with predictive analytics through downloading the open source (FREE) language R. I will go through some tips to get up and started and building predictive models ASAP.
Kosmik is the best institute for Python training in Hyderabad Kukatpally/KPHB. kosmik provides lab facilities with complete real-time training with live sessions
call now: +91-8712186898, +91-8179496603, +91-6309565721
C++ is an object-oriented programming language. It was developed by Bjarne Stroustrup
at AT and T Bell Laboratories USA, in the early 1980’s. Stroustrup, an admirer of
Simula67 and a strong supporter of C wanted to combine the best of both the languages
and create a more powerful language that could support object-oriented programming
features and still retain the power and elegance of C. The result was C++
CenTable - Requirements Specification CenTable is a system for creati.pdfomarionmatzmcwill497
CenTable - Requirements Specification CenTable is a system for creating tabular reports from
county-level U.S.Census Data it is appropriate for batch processing (both off Ine and in support
of an on-line system). The inputs to the system are the ASCII county data fle (land associated
data dictionary) and an ASCI tle that describes the tabular report to be created. The output is a
table in either HTMI or AScll text format 1. Command-Line Parameters 1.1. The first command
line parameter must be the mame of the county level data file to use. 1.2 The second parameter
must be either-h (to indicate that the output should be in HTMor (to indicate that the output
should be in ASCl et) Location of \"Files\" .1. All census data fles must be in the same directory
as the executable 2.2 The report desoription fle must be read from standard in. 2· 3 Report
Description File 1. The format of the report deicription file has not been specified 32. Contents
of the Report Description File 3.2.1it must include a list of all of the counbies to include in the
report 22.It musz contain the field identifiers for the columns so inclade in the report [in ender.
3.23Jt mast contain #tte for each field in the report. 3.2.3.1 It must contain a format descriptor for
the title that idudt the horizonal positioning of the titie (left, center, or right) and the appropriane
way to handle ttles that are too long truncate, break word boundareia 324Jt must contain a format
descrigtor for each field in the report that includes the width of the field, the number of digts to
the right of the decimal place (for floating-point fields the padding character to use, and an
indication of whether or not the sign should always 12 5Jt must contain a specifier for each field
Chatt indicates what information (total, mean nothingl should be diplayed in the last now of the
output 1 42 Output must When the containing the required information 42.1. The tedt must be
displayed in a xed-width font 4.22. The output need not handle page breaks ie, the repert can
have an arbitrary mumber of be sent to standard out witch is used, the output must be an
appropriately formatted HTML table rows when the fiag t.ned, the output munt be an
approprately formatted ASCII tnt file ethat wil look coreect when displayed in a feed with fo
4.3.1 The output need not handle page breaks e, the report can have an arbibrary number of rows.
S1 The report desoription fle may be generated by an untrusted source. 52 Command-line
parameters may be provided by an untrusted source 5.3. CenTable must only be able to read 0m
the dinectory is installed in and standard in, Centable must only be able to write to standa out.
Solution
Okay So basically what you have to create a C Program for an application. This should be called
CenTable.
Input:
1. This system will take as input a text file which contains information about countries and their
census. It must be containing a lot of fields. You need to once take a look at the file to
unders.
An Architectural approach towards designing i18n/l10n, globalization components in the Globalization Enterprise Platforms independent of technology. This provides a Best practices guide/pointers for Architects, designers, developers and QA folks. This is mapped to the use case based on Automotive customer for a global platform application.
A Technical Comparison: ISO/IEC 26300 vs Microsoft Office Open XML Alexandro Colorado
Two XML office file formats have been pressing upon our attention, the OASIS OpenDocument Format, recently standardized by ISO, and the Draft Ecma Office Open XML. This presentation will review history of each, the process that created them, and examine each format to compare and contrast how they deal with issues such extensibility, modularization, expressivity, performance, reuse of standards, programability, ease of use, and application/OS neutrality.
Data Science - Part II - Working with R & R studioDerek Kane
This tutorial will go through a basic primer for individuals who want to get started with predictive analytics through downloading the open source (FREE) language R. I will go through some tips to get up and started and building predictive models ASAP.
Kosmik is the best institute for Python training in Hyderabad Kukatpally/KPHB. kosmik provides lab facilities with complete real-time training with live sessions
call now: +91-8712186898, +91-8179496603, +91-6309565721
C++ is an object-oriented programming language. It was developed by Bjarne Stroustrup
at AT and T Bell Laboratories USA, in the early 1980’s. Stroustrup, an admirer of
Simula67 and a strong supporter of C wanted to combine the best of both the languages
and create a more powerful language that could support object-oriented programming
features and still retain the power and elegance of C. The result was C++
CenTable - Requirements Specification CenTable is a system for creati.pdfomarionmatzmcwill497
CenTable - Requirements Specification CenTable is a system for creating tabular reports from
county-level U.S.Census Data it is appropriate for batch processing (both off Ine and in support
of an on-line system). The inputs to the system are the ASCII county data fle (land associated
data dictionary) and an ASCI tle that describes the tabular report to be created. The output is a
table in either HTMI or AScll text format 1. Command-Line Parameters 1.1. The first command
line parameter must be the mame of the county level data file to use. 1.2 The second parameter
must be either-h (to indicate that the output should be in HTMor (to indicate that the output
should be in ASCl et) Location of \"Files\" .1. All census data fles must be in the same directory
as the executable 2.2 The report desoription fle must be read from standard in. 2· 3 Report
Description File 1. The format of the report deicription file has not been specified 32. Contents
of the Report Description File 3.2.1it must include a list of all of the counbies to include in the
report 22.It musz contain the field identifiers for the columns so inclade in the report [in ender.
3.23Jt mast contain #tte for each field in the report. 3.2.3.1 It must contain a format descriptor for
the title that idudt the horizonal positioning of the titie (left, center, or right) and the appropriane
way to handle ttles that are too long truncate, break word boundareia 324Jt must contain a format
descrigtor for each field in the report that includes the width of the field, the number of digts to
the right of the decimal place (for floating-point fields the padding character to use, and an
indication of whether or not the sign should always 12 5Jt must contain a specifier for each field
Chatt indicates what information (total, mean nothingl should be diplayed in the last now of the
output 1 42 Output must When the containing the required information 42.1. The tedt must be
displayed in a xed-width font 4.22. The output need not handle page breaks ie, the repert can
have an arbitrary mumber of be sent to standard out witch is used, the output must be an
appropriately formatted HTML table rows when the fiag t.ned, the output munt be an
approprately formatted ASCII tnt file ethat wil look coreect when displayed in a feed with fo
4.3.1 The output need not handle page breaks e, the report can have an arbibrary number of rows.
S1 The report desoription fle may be generated by an untrusted source. 52 Command-line
parameters may be provided by an untrusted source 5.3. CenTable must only be able to read 0m
the dinectory is installed in and standard in, Centable must only be able to write to standa out.
Solution
Okay So basically what you have to create a C Program for an application. This should be called
CenTable.
Input:
1. This system will take as input a text file which contains information about countries and their
census. It must be containing a lot of fields. You need to once take a look at the file to
unders.
An Architectural approach towards designing i18n/l10n, globalization components in the Globalization Enterprise Platforms independent of technology. This provides a Best practices guide/pointers for Architects, designers, developers and QA folks. This is mapped to the use case based on Automotive customer for a global platform application.
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
Acetabularia Information For Class 9 .docxvaibhavrinwa19
Acetabularia acetabulum is a single-celled green alga that in its vegetative state is morphologically differentiated into a basal rhizoid and an axially elongated stalk, which bears whorls of branching hairs. The single diploid nucleus resides in the rhizoid.
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
Honest Reviews of Tim Han LMA Course Program.pptxtimhan337
Personal development courses are widely available today, with each one promising life-changing outcomes. Tim Han’s Life Mastery Achievers (LMA) Course has drawn a lot of interest. In addition to offering my frank assessment of Success Insider’s LMA Course, this piece examines the course’s effects via a variety of Tim Han LMA course reviews and Success Insider comments.
Francesca Gottschalk - How can education support child empowerment.pptxEduSkills OECD
Francesca Gottschalk from the OECD’s Centre for Educational Research and Innovation presents at the Ask an Expert Webinar: How can education support child empowerment?
1. ABC
PDFlib, PDFlib+PDI, PPS
A library for generating PDF on the fly
PDFlib 9.0.1
API Reference
For use with C, C++, Cobol, COM, Java, .NET, Objective-C,
Perl, PHP, Python, REALbasic/Xojo, RPG, Ruby
3. Contents 3
Contents
1 Programming Concepts 7
1.1 Option Lists 7
1.1.1 Syntax 7
1.1.2 Simple Data Types 10
1.1.3 Fontsize and Action Data Types 12
1.1.4 Color Data Type 13
1.1.5 Geometric Data Types 15
1.2 Function Scopes 17
1.3 Logging 18
2 General Functions 21
2.1 Exception Handling 21
2.2 Unicode Conversion 23
2.3 Global Options 25
2.4 Creating and Deleting PDFlib Objects 32
2.5 PDFlib Virtual File System (PVF) 34
2.6 PDF Object Creation API (POCA) 37
3 Document and Page Functions 41
3.1 Document Functions 41
3.2 Fetching PDF Documents from Memory 51
3.3 Page Functions 52
3.4 Layers 57
4 Font and Text Functions 63
4.1 Font Handling 63
4.2 Text Filter and Appearance Options 75
4.3 Simple Text Output 79
4.4 User-defined (Type 3) Fonts 83
4.5 User-defined 8-Bit Encodings 86
5 Text and Table Formatting 87
5.1 Single-Line Text with Textlines 87
5.2 Multi-Line Text with Textflows 93
5.3 Table Formatting 110
6 Object Fitting and Matchboxes 121
6.1 Object Fitting 121
4. 4 Contents
6.2 Matchboxes 129
7 Graphics Functions 133
7.1 Graphics Appearance Options 133
7.2 Graphics State 136
7.3 Coordinate System Transformations 140
7.4 Path Construction 143
7.5 Painting and Clipping 147
7.6 Path Objects 149
8 Color Functions 155
8.1 Setting Color 155
8.2 ICC Profiles 158
8.3 Patterns and Shadings 160
9 Image, SVG Graphics and Template Functions 165
9.1 Images 165
9.2 SVG Graphics 173
9.3 Templates 179
9.4 Common XObject Options 181
10 PDF Import (PDI) and pCOS Functions 187
10.1 Document Functions 187
10.2 Page Functions 191
10.3 Other PDI Processing 197
10.4 pCOS Functions 199
11 Block Filling Functions (PPS) 203
11.1 Rectangle Options for Block Filling Functions 203
11.2 Textline and Textflow Blocks 204
11.3 Image Blocks 206
11.4 PDF Blocks 207
11.5 Graphics Blocks 208
12 Interactive Features 209
12.1 Bookmarks 209
12.2 Annotations 211
12.3 Form Fields 219
12.4 Actions 226
12.5 Named Destinations 231
5. Contents 5
12.6 PDF Packages and Portfolios 233
12.7 Geospatial Features 238
13 Multimedia Features 241
13.1 3D Artwork 241
13.2 Asset and Rich Media Features (Flash) 247
14 Document Interchange 255
14.1 Document Information Fields 255
14.2 XMP Metadata 257
14.3 Tagged PDF 258
14.4 Marked Content 264
14.5 Document Part Hierarchy 266
A List of all API Functions 269
B List of all Options and Keywords 271
C Revision History 287
Index 289
6.
7. 1.1 Option Lists 7
1 Programming Concepts
1.1 Option Lists
Option lists are a powerful yet easy method for controlling API function calls. Instead of
requiring a multitude of function parameters, many API methods support option lists,
or optlists for short. These are strings which can contain an arbitrary number of options.
Option lists support various data types and composite data like lists. In most language
bindings optlists can easily be constructed by concatenating the required keywords and
values.
Bindings C language binding: you may want to use the sprintf( ) function for constructing optlists.
.NET language binding: C# programmers should keep in mind that the AppendFormat( )
StringBuilder method uses the { and } braces to represent format items which will be re-
placed by the string representation of arguments. On the other hand, the Append( )
method does not impose any special meaning on the brace characters. Since the option
list syntax makes use of the brace characters, care must be taken in selecting the
AppendFormat( ) or Append( ) method appropriately.
1.1.1 Syntax
Formal option list syntax definition. Option lists must be constructed according to fol-
lowing rules:
> All elements (keys and values) in an option list must be separated by one or more of
the following separator characters: space, tab, carriage return, newline, equal sign ’=’.
> An outermost pair of enclosing braces is not part of the element. The sequence { }
designates an empty element.
> Separators within the outermost pair of braces no longer split elements, but are part
of the element. Therefore, an element which contains separators must be enclosed
with braces.
> If an element contains brace characters these must be protected with a preceding
backslash character.
> If an element contains a sequence of one or more backslash characters in front of a
brace, each backslash in the sequence must be protected with another backslash
character.
> Option lists must not contain binary zero values.
An option may have a list value according to its documentation in this PDFlib Refer-
ence. List values contain one or more elements (which may themselves be lists). They
are separated according to the rules above, with the only difference that the equal sign
is no longer treated as a separator.
Note Option names (i.e. the key) never contain hyphen characters. Keep this in mind since the tables
with option descriptions may sometimes contain long option names which are hyphenated.
The hyphen must be omitted when supplying the option in an option list.
Simple option lists. In many cases option lists will contain one or more key/value
pairs. Keys and values, as well as multiple key/value pairs must be separated by one or
8. 8 Chapter 1: Programming Concepts
more whitespace characters (space, tab, carriage return, newline). Alternatively, keys
can be separated from values by an equal sign ’=’:
key=value
key = value
key value
key1 = value1 key2 = value2
To increase readability we recommend to use equal signs between key and value and
whitespace between adjacent key/value pairs.
Since option lists will be evaluated from left to right an option can be supplied mul-
tiply within the same list. In this case the last occurrence will overwrite earlier ones. In
the following example the first option assignment will be overridden by the second,
and key will have the value value2 after processing the option list:
key=value1 key=value2
List values. Lists contain one or more separated values, which may be simple values or
list values in turn. Lists are bracketed with { and } braces, and the values in the list must
be separated by whitespace characters. Examples:
dasharray={11 22 33} (list containing three numbers)
position={ center bottom } (list containing two keywords)
A list may also contain nested lists. In this case the lists must also be separated from
each other by whitespace. While a separator must be inserted between adjacent } and {
characters, it can be omitted between braces of the same kind:
polylinelist={{10 20 30 40} {50 60 70 80}} (list containing two lists)
If the list contains exactly one list the braces for the nested list must not be omitted:
polylinelist={{10 20 30 40}} (list containing one nested list)
Nested option lists and list values. Some options accept the type option list or list of
option lists. Options of type option list contain one or more subordinate options. Options
of type list of option lists contain one or more nested option lists. When dealing with
nested option lists it is important to specify the proper number of enclosing braces.
Several examples are listed below.
The value of the option metadata is an option list which itself contains a single op-
tion filename:
metadata={filename=info.xmp}
The value of the option fill is a list of option lists containing a single option list:
fill={{ area=table fillcolor={rgb 1 0 0} }}
The value of the option fill is a list of option lists containing two option lists:
fill={{ area=rowodd fillcolor={rgb 0 1 0} } { area=roweven fillcolor={rgb 1 0 0} }}
List containing one option list with a value that includes spaces:
attachments={{filename={foo bar.xml} }}
9. 1.1 Option Lists 9
List containing three strings:
itemnamelist = { {Isaac Newton} {James Clark Maxwell} {Albert Einstein} }
List containing two keywords:
position={left bottom}
List containing different types (float and keyword):
position={10 bottom}
List containing one rectangle:
boxes={{10 20 30 40}}
List containing two polylines with percentages:
polygons = {{10 20 40 60 90 120}} {12 87 34 98 34% 67% 34% 7%}}
Common traps and pitfalls. This paragraph lists some common errors regarding op-
tion list syntax.
Braces are not separators; the following is wrong:
key1 {value1}key2 {value2} WRONG!
This will trigger the error message Unknown option 'value2'. Similarly, the following are
wrong since the separators are missing:
key{value} WRONG!
key={{value1}{value2}} WRONG!
Braces must be balanced; the following is wrong (see below for unquoted string syntax):
key={open brace {} WRONG!
This will trigger the error message Braces aren't balanced in option list 'key={open brace {}'.
A single brace as part of a string must be preceded by an additional backslash character:
key={closing brace } and open brace {} CORRECT!
A backslash at the end of a string value must be preceded by another backslash if it is
followed by a closing brace character:
key={value} WRONG!
key={value} CORRECT!
Unquoted string values in option lists. In the following situations conflicts between
the characters in an option value and optlist syntax characters may arise:
> Passwords may contain unbalanced braces, backslashes and other special characters
> Japanese SJIS filenames in option lists (reasonable only in non-Unicode-capable lan-
guage bindings)
> Supplying JavaScript code in options is problematic due to the use of { and } braces
10. 10 Chapter 1: Programming Concepts
In order to provide a simple mechanism for supplying arbitrary text or binary data
which does not interfere with option list syntax elements, unquoted option values can
be supplied along with a length specifier in the following syntax variants:
key[n]=value
key[n]={value}
The decimal number n represents the following:
> in Unicode-capable language bindings: the number of UTF-16 code units
> in non-Unicode aware language bindings: the number of bytes comprising the string
The braces around the string value are optional, but strongly recommended. They are
required for strings starting with a space or other separator character. Braces, separators
and backslashes within the string value are taken literally without any special interpre-
tation.
Example for specifying a 7-character password containing space and brace charac-
ters. The whole string is surrounded by braces which are not part of the option value:
password[7]={ ab}c d}
Note that if an option value in a nested option list is provided with a length count, the
enclosing option list must also supply a length count, e.g.
fitannotation[34]={contents[19]={this is a brace '}'}}
1.1.2 Simple Data Types
String. Strings are plain ASCII strings (or EBCDIC strings on EBCDIC platforms) which
are generally used for non-localizable keywords. Strings containing whitespace or ’=’
characters must be bracketed with { and }:
password={ secret string } (string value contains three blanks)
contents={length=3mm} (string value containing one equal sign)
The characters { and } must be preceded by an additional character if they are sup-
posed to be part of the string:
password={weird}string} (string value contains a right brace)
A backslash in front of the closing brace of an element must be preceded by a backslash
character:
filename={C:pathname} (string ends with a single backslash)
An empty string can be constructed with a pair or braces:
{}
Content strings, hypertext strings and name strings: these can hold Unicode content in
various formats. Single bytes can be expressed by an escape sequence if the option
escapesequence is set. For details on these string types and encoding choices for string
options see the PDFlib Tutorial.
11. 1.1 Option Lists 11
Non-Unicode capable language bindings: if an option list starts with a [EBCDIC-]UTF-
8 BOM, each content, hypertext or name string of the option list is interpreted as a [EBC-
DIC-]UTF-8 string.
Unichar. A Unichar is a single Unicode value where several syntax variants are sup-
ported: decimal values ¹ 10 (e.g. 173), hexadecimal values prefixed with x, X, 0x, 0X, or U+
(xAD, 0xAD, U+00AD), numerical references, character references, and glyph name refer-
ences but without the ’&’ and ’;’ decoration (shy, #xAD, #173). Alternatively, literal charac-
ters can be supplied. Examples:
replacementchar=? (literal)
replacementchar=63 (decimal)
replacementchar=x3F (hexadecimal)
replacementchar=0x3F (hexadecimal)
replacementchar=U+003F (Unicode notation)
replacementchar=euro (HTML character reference)
replacementchar=.question (standard glyph name reference)
replacementchar=.marina (font-specific glyph name reference)
Single characters which happen to be a number are treated literally, not as decimal Uni-
code values:
replacementchar=3 (U+0033 THREE, not U+0003!)
Unichars must be in the hexadecimal range 0-0x10FFFF (decimal 0-1114111). However,
some options are restricted to the range 0-0xFFFF (0-65535). This is noted in the respec-
tive option description.
Unicode range. A Unicode range identifies a contiguous range of Unicode characters
via start and end characters of the range. The start and end values of a Unicode range
must be separated by a minus sign ’-’ without any spaces, e.g.
forcechars={U+03AC-U+03CE}
Boolean. Booleans have the values true or false; if the value of a Boolean option is
omitted, the value true is assumed. As a shorthand notation noname can be used instead
of name=false:
embedding (equivalent to embedding=true)
noembedding (equivalent to embedding=false)
Keyword. An option of type keyword can hold one of a predefined list of fixed key-
words. Example:
blendmode=overlay
For some options the value hold either a number or a keyword.
Number. Option list support several numerical types.
Integer types can hold decimal and hexadecimal integers. Positive integers starting
with x, X, 0x, or 0X specify hexadecimal values:
12. 12 Chapter 1: Programming Concepts
-12345
0
0xFF
Floats can hold decimal floating point or integer numbers; period and comma can be
used as decimal separators for floating point values. Exponential notation is also sup-
ported. The following values are all equivalent:
size = -123.45
size = -123,45
size = -1.2345E2
size = -1.2345e+2
Percentages are numbers with a % character directly after the numerical value. Some
options allow negative percentages:
leading=120%
topoffset=-20.5%
Handle. Handles identify various types of objects, e.g. fonts, images, ICC profiles or ac-
tions. Technically these are integer values which have been returned earlier by an API
function. For example, an image handle is returned by PDF_load_image( ). Handles must
always be treated as opaque types; they must never be modified or created by the appli-
cation directly (as opposed to using a handle returned by an API function). Handles
must always be valid for the respective type of object. For example, an option which ex-
pects an image handle must not be supplied with a graphics handle, although both han-
dles are integer types.
1.1.3 Fontsize and Action Data Types
Fontsize. A fontsize can be defined in several ways which allow the size of text to be
specified in absolute values, relative to some external entity, or relative to some font
property. In general the fontsize must be different from 0 unless the option description
mentions otherwise.
In the most common case a fontsize contains a single float value which specifies re-
fers to units in the user coordinate system:
fontsize=12
The second variant contains a percentage, where the basis of the percentage depends on
the context (e.g. the width of the fitbox for PDF_fit_textline( ):
fontsize=8%
In the third variant, the fontsize is specified as an option list which must contain a key-
word and a number. The keyword describes the desired font metric according to Table
1.1, and the number contains the desired size. PDFlib will calculate the proper fontsize so
that the selected text metric matches the supplied value:
fontsize={capheight 5}
Action list. An action list specifies one or more actions. Each entry in the list consists
of an event keyword (trigger) and a list of action handles which must have been created