3.3  Predefined Metadata Properties 41
3.3 Predefined Metadata Properties
The following property set collections are built into TET PDF IFilter:
>Shell properties are known to Windows and have user-friendly names. TET PDF IFilter 
populates all Shell properties which have equivalents in PDF documents. Common 
examples are System.Author and System.Title, and System.Document.DateCreated. For a 
list and description of shell properties see
msdn.microsoft.com/en-us/library/windows/desktop/dd561977(v=vs.85).aspx 
>PDF properties are specific to PDF documents. They are populated from pCOS paths. 
Examples are the PDF version number, bookmark contents, or page size.
>Document XMP properties cover all predefined document properties in the XMP 2005 
specification, see
www.adobe.com/devnet/xmp 
>Image XMP properties cover XMP properties which are attached to images in the doc-
ument. Image properties are also derived from the XMP 2005 specification.
>Internal properties are auxiliary properties which are not intended for production use, 
but as development and debugging aids. They include software version numbers 
and the time of indexing.
A full list of predefined properties along with their GUIDs and user-friendly names can 
be found in Appendix A, »Predefined Metadata Properties«.
Properties from these collections do not have to be configured individually. Howev-
er, they must be enabled as required since not all collections are enabled by default (see 
below). You can override predefined properties by assigning the corresponding 
GUID+ID combination to a custom property.
XML configuration for enabling property set collections. Some or all of the predefined 
property set collections can be enabled with the corresponding attributes in the 
Metadata/PropertySetCollection element:
<PropertySetCollection
shell="true"
pdf="true"
documentXmp="true"
imageXmp="true"
internal="true"/>
By default, the Shell and Internal property set collections are enabled, while the 
documentXMP, imageXMP, and PDF property set collections are disabled. Custom proper-
ties are enabled implicitly if one or more custom properties are specified.
Handling of all predefined and custom metadata properties can be completely dis-
abled with the metdataHandling attribute of the Filtering element:
<Filtering metadataHandling="ignore">
Delete pages of pdf reader - remove PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Provides Users with Mature Document Manipulating Function for Deleting PDF Pages
delete pages on pdf online; acrobat remove pages from pdf
Delete pages of pdf reader - VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Visual Basic Sample Codes to Delete PDF Document Page in .NET
delete pdf pages android; delete page in pdf preview
42
Chapter 3:  Indexing Metadata
3.4 Custom Metadata Properties
Custom metadata properties are additional properties beyond the predefined proper-
ties which meet specific requirements within an enterprise, organization, industry etc. 
TET PDF IFilter gives you full control over custom properties: they can be specified in 
the configuration file so that they will be generated by TET PDF IFilter and indexed by 
the search engine.
Planning custom metadata properties. In order to specify custom properties you 
must consider the following aspects (see »Property identification and GUIDs«, page 40, 
for details on GUIDs, identifiers, and friendly names):
>You can group one or more properties in a property set. Each property set needs a 
unique 128-bit identifier called the GUID.
>The property identifier is a unique integer which identifies the property within its 
property set. Property identifiers in a set start at the value 2. With some IFilter clients 
the identifier can be replaced with a friendly name. You can override predefined 
properties by assigning the corresponding GUID+ID combination.
>The friendly name for a property is optional if an identifier is available, and required 
otherwise. It can be an arbitrary name which must be unique within the configura-
tion file. While for some IFilter clients it can be used instead of the identifier, friend-
ly names do not work with all IFilter clients.
>Property source: properties can be populated from document metadata or general 
PDF information according to Section 3.1, »Sources of Metadata in PDF«, page 37.
>The data type of the property: Int32 (32-bit integer), Double (floating point number 
with double precision), Boolean (true/false), DateTime (see below), and String.
>The precedence rule: if there is more than one data source for the property you can 
specify whether the first available non-empty data source will have precedence (i.e. 
subsequent sources will be ignored), or whether data from all non-empty sources 
will be collected.
>Specify whether the property will be emitted as a vector, i.e. multiple values will be 
handed to the IFilter interface in an array structure instead of a flat value (see Sec-
tion 3.5, »Multivalued Properties«, page 44).
>A prefix which will be prepended to the property name if properties are indexed as 
part of the full text (see Section 3.6, »Index Metadata Properties as Text«, page 45).
The DateTime property type. In order to specify a point in time you can use the 
DateTime data type for properties. While the output created for DateTime properties is 
always in the format required by the IFilter interface, the input supports different for-
mats depending on the source of the property:
>If the data source is a pCOS path, e.g. for a standard or custom document info field 
such as /Info/CustomDate, the value is expected in standard PDF date format as speci-
fied in ISO 32000-1, section 7.9.7. The general format of a PDF date string is 
D:YYYYMMDDHHmmSSOHH'mm. Note that the PDF date format (unlike the XMP for-
mat discussed below) does not support fractions of a second. Some examples:
D:201109231858
GMT
D:201109231058-08'00'
same instant expressed in U.S. Pacific Standard Time
D:201109231958+01'00'
same instant expressed in Central European Time
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
VB.NET Page: Insert PDF pages; VB.NET Page: Delete PDF pages; VB.NET Annotate: PDF Markup & Drawing. XDoc.Word for XImage.OCR for C#; XImage.Barcode Reader for C#
delete pages pdf; cut pages from pdf file
C# PDF Page Insert Library: insert pages into PDF file in C#.net
how to merge PDF document files by C# code, how to rotate PDF document page, how to delete PDF page using C# .NET, how to reorganize PDF document pages and how
cut pages out of pdf; delete pages from pdf reader
3.4  Custom Metadata Properties 43
>If the data source is an XMP property (e.g. xmp:ModifyDate), the value is expected as 
specified for the basic value type Date in the XMP 2005 reference, identical to the for-
mat specified in ISO 8601
1
. The general format of an XMP date string is YYYY-MM-
DDThh:mm:ss.sTZD, where TZD is the time zone designator (Z or +hh:mm or -hh:mm). 
Note that some parts are optional: XMP dates support six levels of granularity with 
increasing accuracy, while the PDF date format supports only a single level of granu-
larity. Some examples:
2011-09-23T18:58:30Z
GMT
2011-09-23T13:58:30-05:00
same instant expressed in US Eastern Standard Time
2011-09-23T19:58:30+01:00
same instant expressed in Central European Time
TET PDF IFilter normalizes DateTime properties to UTC as specified in the IFilter inter-
face specification. As a result, searches for DateTime properties can always be performed 
with respect to the local time zone, regardless of the time zone in which the PDF docu-
ment has been created.
XML configuration for custom properties. One or more custom properties can be spec-
ified in the PropertySet element, where each Property element describes a property in the 
set:
<PropertySet guid="33333333-5354-4c72-992C-5DF2AA4E7CBA">
<Property friendlyName="MailTo" identifier="2" type="String">
<Source xmpName="acme:mailto"/>
</Property>
</PropertySet>
Multiple PDF sources can be mapped to the same Windows property. The presence of a 
Property element will automatically enable processing for the specified property. How-
ever, handling of all predefined and custom metadata properties can be completely dis-
abled with the metadataHandling attribute of the Filtering element:
<Filtering metadataHandling="ignore">
XML configuration for GUID+name treatment of properties. TET PDF IFilter will use 
GUID+ID to identify properties in the IFilter interface if the identifier is available. Cus-
tom properties which do not have the identifier attribute but only the friendlyName attri-
bute, will be identified by GUID+name instead. In order to enable GUID+name treat-
ment for predefined properties as well (and to globally force GUID+name treatment) 
you can use the useIdentifier attribute of the Filtering element:
<Filtering useIdentifier="false">
The names used for the predefined properties are similar to the property prefixes 
shown in Table 3.2, except that the leading TET_ and the trailing underscore ’_’ will be 
dropped (e.g. System_Author, pdfversion, dc_contributor, photoshop_DateCreated).
Using GUID+name treatment for properties can be more convenient than GUID+ID 
in some environments, especially SharePoint.
1. See www.w3.org/TR/NOTE-datetime 
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Page: Insert PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Insert PDF Page. Add and Insert Multiple PDF Pages to PDF Document Using VB.
delete page from pdf reader; add and delete pages in pdf
VB.NET PDF delete text library: delete, remove text from PDF file
Visual Studio .NET application. Delete text from PDF file in preview without adobe PDF reader component installed. Able to pull text
delete pages pdf files; acrobat extract pages from pdf
44
Chapter 3:  Indexing Metadata
3.5 Multivalued Properties
Metadata properties can contain one or more values. Single-valued properties consist of a 
flat value which describes the document as a whole. Examples for single-valued proper-
ties are the creation date (property sources: xmp:CreateDate and /Info/CreationDate) and 
the unique document identifier (dc:identifier).
Multivalued properties may occur more than once per document. Examples for mul-
tivalued properties are the list of document authors and document keywords. The mul-
tiplicity of a property may have several reasons:
>The source of the property is an XMP container type and can therefore hold multiple 
entries at once, e.g. dc:creator has type Seq in XMP.
>The property is populated from a multivalued pCOS path with wildcards, where the 
wildcards will be expanded to any number of individual entries, e.g. bookmarks[*]/
Title.
>The property is populated from more than one source, and the precedence attribute 
of the property has the value try-all, e.g. pdf:Keywords and /Info/Keywords. However, 
the default precedence=first-wins processes only the first non-empty property source.
Vector treatment of properties. By default, TET PDF IFilter will process all relevant 
sources in the property definition (subject to the precedence attribute), and emit as 
many non-empty property values as are available. In other words, each value will be re-
turned as a single entity to the IFilter client. Property values will be returned in unspec-
ified order.
Alternatively, multivalued properties can be provided as vectors to the IFilter client. 
This means that a single array entity will be emitted which can hold one or more values. 
There are several relevant aspects of vector processing for properties:
>SharePoint supports multivalued properties only if they are processed as vector en-
tities.
>Some IFilter clients, e.g. Windows Search, support vector queries where you can 
search for one or more values in a multivalued vector property in a single query.
Keep in mind that there are two separate concepts: multivalued refers to an aspect of the 
property’s source, while vector processing refers to the way in which property values are 
transferred to the IFilter client. Vector processing can be applied to multivalued proper-
ties even if they contain only a single value.
Some of the predefined properties are multi-valued (see Appendix A, »Predefined 
Metadata Properties«). 
XML configuration for vector properties. Vector processing for custom properties can 
be enabled with the emitAsVector attribute of the Property element:
<Property friendlyName="MailTo" type="String" precedence="try-all" emitAsVector="true">
<Source xmpName="acme:mailto"/>
<Source xmpName="gov:mailto"/>
</Property>
C# PDF Page Rotate Library: rotate PDF page permanently in C#.net
batch changing PDF page orientation without other PDF reader control. NET, add new PDF page, delete certain PDF page, reorder existing PDF pages and split
delete page on pdf document; delete pages in pdf reader
C# PDF delete text Library: delete, remove text from PDF file in
Delete text from PDF file in preview without adobe PDF reader component installed in ASP.NET. C#.NET PDF: Delete Text from Consecutive PDF Pages.
delete pages out of a pdf file; cut pages from pdf reader
3.6  Index Metadata Properties as Text 45
3.6 Index Metadata Properties as Text
Most text retrieval engines support property queries in some way. However, querying 
for properties may not be possible with retrieval products which support only full-text 
search, e.g. SQL Server. In another scenario, explicitly searching for properties may not 
be desired if you want to search for any occurrence of the search term, regardless of 
whether it occurs in the document content or some property. In both situations you can 
instruct TET PDF IFilter to include all properties in the full-text index. In order to distin-
guish the property from actual document content, TET PDF IFilter can optionally prefix 
the property values with a string which makes it easier to identify properties as such in 
situations where the search engine does not directly support property searches. Fixed 
prefixes will be used for the predefined properties listed in Appendix A, »Predefined 
Metadata Properties«.
While indexing properties as text allows limited property searches in environments 
which otherwise do not support property searches at all, you should be aware of the fact 
that the property searches are limited. For example, Boolean or other expressions are 
not available for property values.
XML configuration for indexing metadata as text. To index metadata properties as 
text set the metadataHandling attribute of the Filtering element to propertyAndText (to 
transparently blend the properties into the main text) or propertyAndPrefixedText (to 
identify the properties with a prefix):
<Filtering metadataHandling="PropertyAndPrefixedText">
The optional prefix which will be prepended to custom properties when filtering the 
document can be specified for custom properties in the textIndexPrefix attribute of the 
Property element:
<Property friendlyName="Title" identifier="7" textIndexPrefix="TITLE_">
...
</Property>
The prefixes which will be prepended to predefined properties are constructed accord-
ing to the following scheme:
TET_<property name>_
where period characters ’.’ in the property name are replaced with underscore charac-
ters ’_’ (see Table 3.2 for examples).
Table 3.2 Prefixes for indexing metadata properties as text
Property set collection
sample property name
prefix for indexing metadata as text
Shell
System.Author
TET_System_Author_
TET
PDFlib.TETPDFIFilter.pdfversion
TET_pdfversion_
XMP
dc:contributor
TET_dc_contributor_
Image
photoshop:DateCreated
TET_photoshop_DateCreated_
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
C:\test1.pdf") Dim pdf2 As PDFDocument = New PDFDocument("C:\test2.pdf") Dim pageindexes = New Integer() {1, 2, 4} Dim pages = pdf.DuplicatePage(pageindexes
delete blank pages in pdf files; delete a page from a pdf file
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
C#.NET PDF Library - Copy and Paste PDF Pages in C#.NET. Easy to C#.NET Sample Code: Copy and Paste PDF Pages Using C#.NET. C# programming
delete pages from pdf without acrobat; cut pages from pdf
46
Chapter 3:  Indexing Metadata
Scenario 1: Transparently blend metadata properties into the main text. If metadata 
properties contains sufficiently distinctive text which identifies the target docu-
ment(s), it will suffice to include the properties in the full-text index and include it in 
standard full-text queries. For example, if you query for a specific article number, it 
doesn’t matter whether the number occurs in the main text of the document or in a 
metadata property, as long as only one particular document talks about the article 
number in question. In other words, if it doesn’t matter whether the text occurs in the 
main text or some metadata property, you must simply enable the indexing of proper-
ties as full-text, without any additional steps.
Use the following XML configuration to transparently blend metadata into the main 
text:
<Filtering metadataHandling="propertyAndText">
Scenario 2: Distinguish metadata from the main text. In other situations it may be rel-
evant whether the text occurs in the main document or in some metadata property. For 
example, it makes a big difference whether you search for documents authored by 
Doyle, or documents which include the term Doyle in the main text. In this scenario you 
must not only enable the indexing of properties as full-text, but also include suitable 
prefixes for each property which make it possible to distinguish between text in the 
main document contents and text in metadata properties.
The value of the predefined property System.Author will be prepended by the prefix 
TET_System_Author_. For example, you can emulate a property-based search for 
System.Author=Doyle with a full-text search for TET_System_Author_Doyle. Since 
System.Author is a predefined property, the corresponding XML configuration does not 
require any property-specific entries, but must simply enable indexing of properties as 
prefixed text:
<Filtering metadataHandling="propertyAndPrefixedText">
In order to emulate a property-based search for documents with the article number 
XY123456 with a full-text search for ArticleNumber_XY123456 use the following XML con-
figuration:
<Filtering metadataHandling="propertyAndPrefixedText">
<PropertySet guid="404e8a40-2e85-11dd-97f6-0002a5d5c51b">
<Property identifier="2" textIndexPrefix="ArticleNumber_">
<Source pdfObject="/Info/ArticleNumber"/>
</Property>
<PropertySet>
3.7  Ignore Page Contents in Favor of Metadata 47
3.7 Ignore Page Contents in Favor of Metadata
In some situations users may want to initiate searches based on metadata properties 
only instead of the page content, i.e. completely ignore page contents in the indexing 
step and exclusively rely on metadata properties. Conceivable reasons for such a sce-
nario are one or more of the following:
>More control over queries issued by users: don't waste sifting through long result 
lists when you can get an exact result based on metadata properties.
>The searched documents contain roughly the same words, but in different combina-
tions, e.g. invoices or other transactional documents.
>The actual page contents are not really relevant for the search since they are well-
known in advance. However, the kind of assembled pages for a particular document 
is of interest, e.g. insurance transactions which are associated with a variable num-
ber of contracts: not the exact contract wording is relevant for the search, but the 
number and kind of assembled contract documents.
>The searched documents don’t contain any searchable text at all, e.g. scanned docu-
ments without any OCR performed.
>The documents contain information which does not contribute to the index in any 
reasonable way, e.g. long financial documents which contain only numbers, or tech-
nical plans without text (or only text within captions in the drawings).
>Performance optimization in any of the cases above: don’t waste time indexing doc-
uments if the contents are known to be unhelpful for the search.
XML configuration for disabling page content indexing. To completely disable page 
content indexing set the indexPageContents attribute of the Filtering element to false:
<Filtering indexPageContents="false" metadataHandling="property">
4.1  Metadata in Windows Search 49
4Metadata Handling in IFilter Clients
4.1 Metadata in Windows Search
Create a property description file. Windows Search accesses the Windows property 
system which holds descriptions of predefined and custom metadata properties. In or-
der to use custom metadata properties with Windows Search you must prepare a prop-
erty description file (often called .propdesc) which specifies the names, data types, and 
GUIDs of properties, as well as other property attributes. The property descriptions 
must match the corresponding property descriptions in the XML configuration file. 
Property descriptions must be specified as XML files according to the syntax described 
at the following location:
msdn.microsoft.com/en-us/library/bb773879(VS.85).aspx 
Sample property description files are installed with TET PDF IFilter. The following (in-
complete) example demonstrates a few property descriptions:
<propertyDescription name="PDFlib.TETPDFIFilter.fontcount"
formatID="{5eac0060-1ba4-11dd-92c4-0002a5d5c51b}" propID="2">
<typeInfo type="Int32" isInnate="true" isViewable="true" isQueryable="true"/>
<labelInfo label="fontcount" sortDescription="LowestHighest"/>
<searchInfo inInvertedIndex="true" isColumn="true" columnIndexType="OnDisk"/>
</propertyDescription>
<propertyDescription name="PDFlib.TETPDFIFilter.weblink"
formatID="{5eac0060-1ba4-11dd-92c4-0002a5d5c51b}" propID="6">
<typeInfo type="String" isInnate="true" multipleValues="true" isViewable="true"
isQueryable="true"/>
<labelInfo label="weblink" sortDescription="AToZ"/>
<searchInfo inInvertedIndex="true" isColumn="true" columnIndexType="OnDisk"/>
</propertyDescription>
Note that the multipleValues="true" attribute is crucial for multivalued properties (see 
Section 3.5, »Multivalued Properties«, page 44).
Predefined properties. A property description file predefined_properties.propdesc for all 
predefined properties (see Appendix A, »Predefined Metadata Properties«) is installed 
with TET PDF IFilter. Although the property definitions are built into TET PDF IFilter, 
you must enable the desired property set collections in the XML configuration file (see 
Section 3.3, »Predefined Metadata Properties«, page 41), and register the property de-
scriptions (see »Register metadata properties in Windows«, page 49) before you can use 
them in queries.
XML configuration for Windows Search. Table 4.1 lists requirements and recommen-
dations related to the XML configuration for TET PDF IFilter when working with Win-
dows Search.
Register metadata properties in Windows. In order to use property queries in Win-
dows Search the corresponding property descriptions must be registered in the Win-
dows property system. You can register property descriptions with the command-line 
50
Chapter 4:  Metadata Handling in IFilter Clients
program registerpropdesc.exe which is installed with TET PDF IFilter. Note that this tool 
works only if Windows Search is installed on the system. Supply the file name of a prop-
erty description file to this tool to register it with the Windows property system (make 
sure to enclose the path with double quotes if it contains space characters):
registerpropdesc "predefined_properties.propdesc"
See also the section »Running privileged commands«, page 6. The Windows property 
system stores the names of property description files in the following registry keys (and 
increasing numbers in the last component of the key):
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertySchema\0000
The registerpropdesc tool will emit an error message and a HRESULT error value if the 
property file could not successfully be registered (e.g. if a duplicate property was detect-
ed). In case of an error you can check the application event log for more details:
>Start, Settings, Control Panel, Administrative Tools, Event Viewer
>Click on Application in the left pane.
>In case of a problem with property registration there will be an entry with source 
Microsoft-Windows-propsys. Double-click on the line containing the entry and exam-
ine the error message (e.g. Omitted duplicate property).
Alternatively, you can use the HRESULT value emitted by registerpropdesc.exe to analyze 
the problem. A list of HRESULT values and explanations can be found at
msdn.microsoft.com/en-us/library/cc231198.aspx 
A shared source command-line tool called prop.exe offers functionality similar to 
registerpropdesc, plus additional features for dealing with the Windows Property System:
prop.codeplex.com 
Requirements for registering property descriptions. Note the following important re-
quirements when registering property description files for Windows Search:
>In order for custom properties to become available for searching, you must register 
the property description, stop and restart the search service, and force a rebuild via 
the Windows Search options:
registerpropdesc "predefined_properties.propdesc"
net stop wsearch
net start wsearch
Table 4.1 XML configuration for Windows Search
element
attribute
requirements and recommendation
Filtering
useIdentifier
Must be true since Windows Search supports only the GUID+ID method 
for identifying properties, but not GUID+name (see »XML configuration 
for GUID+name treatment of properties«, page 43).
Property
identifier
Required since Windows Search supports only the GUID+ID method for 
identifying properties, but not GUID+name (see »XML configuration for 
GUID+name treatment of properties«, page 43).
PropertySetCollection
shell
Should be true to support the shell properties known to Windows Search 
(note that true is the default anyway).
Documents you may be interested
Documents you may be interested